当我设置组合框或边框的背景颜色时,更改不会显示在设计器中,但在运行时会正确显示。代码或属性窗口或应用程序中的任何位置都不会显示更改。这只发生在组合框控件上;其他控件显示正确。
<Window
x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp1"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="232"
Height="114"
mc:Ignorable="d">
<Grid>
<ComboBox HorizontalAlignment="Left" Margin="69,35,0,0" VerticalAlignment="Top" Width="120" Background="#0720F3"/>
<Button Content="Button" HorizontalAlignment="Left" Margin="100,65,0,0" VerticalAlignment="Top" Background="#FFD01A1A"/>
</Grid>
我在所有wpf项目中都遇到这个问题。
那是因为你没有在XAML中设置窗口的datacontext。
如果您只是忘记设置窗口的数据上下文,请忽略以下答案,只需在 XAML 代码中设置数据上下文。
如果您在其他地方设置此窗口的数据上下文,也没关系,您仍然可以通过将窗口属性 DataContext 设置为设计,让设计器选择您用作数据上下文的类(在代码中的其他位置)你的班级的实例。
记住还要声明您打算用作命名空间的类的命名空间。
像这样:
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp1"
xmlns:[DECLARED NAMESPACE]="clr-namespace:[ACTUAL PATH TO NAMESPACE]"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="232"
Height="114"
d:DataContext="{d:DesignInstance Type=[DECLARED NAMESPACE]:[YOUR DATACNTEXT CLASS HERE]}"
mc:Ignorable="d">
这会将窗口的设计实例设置为您想要的数据上下文,并且不会在运行时两次设置数据上下文。