我正在尝试使用rectangle
的值填充settings.settings
。但它会抛出NullRefference错误。当我用MessageBox显示设置时,它不是空的。 NullRefference exception
由Rectangle
var rect = btnBackground.Template.FindName("rectBackground", btnBackground) as Rectangle;
rect.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString((PawnStar.Properties.Settings.Default.colorBG))); // PawnStar.Properties.Settings.Default.colorBG
colorBG = (Color)ColorConverter.ConvertFromString((PawnStar.Properties.Settings.Default.colorBG));
WPF:
<Button Click="btnBackground_Click" Grid.Row="0" Grid.Column="1" Name="btnBackground">
<Button.Template>
<ControlTemplate>
<Rectangle Name="rectBackground" Stroke="Black" Fill="#FFFFFF"></Rectangle>
</ControlTemplate>
</Button.Template>
</Button>
当我创建一个新的Rectangle对象时,我再也无法改变颜色了。
答案 0 :(得分:0)
实现目标的最简单方法是在TemplateBinding
Rectangle
属性上设置Fill
以使用Button's
Background
。然后,从应用程序设置中将按钮背景设置为您的值,然后再更新矩形的填充
示例代码如下:
<Rectangle Fill="{TemplateBinding Background}" Name="rectBackground" Stroke="Black" />