使用应用程序设置值填充矩形时的C#/ WPF NullReference异常

时间:2013-10-27 13:38:53

标签: c# wpf colors nullreferenceexception rectangles

我正在尝试使用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对象时,我再也无法改变颜色了。

1 个答案:

答案 0 :(得分:0)

实现目标的最简单方法是在TemplateBinding Rectangle属性上设置Fill以使用Button's Background。然后,从应用程序设置中将按钮背景设置为您的值,然后再更新矩形的填充

示例代码如下:

<Rectangle Fill="{TemplateBinding Background}" Name="rectBackground" Stroke="Black" />