1

我正在尝试rectanglesettings.settings. 但它会引发 NullReference 错误。当我使用 MessageBox 显示设置时,它不是空的。由NullRefference exception矩形触发

 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 对象时,我不能再改变颜色了。

4

1 回答 1

0

实现您正在尝试的最简单方法是使用TemplateBindingonRectangle Fill属性Button's Background。然后,将按钮的背景设置为应用程序设置中的值,这反过来将更新 Rectangle 的 Fill

示例代码如下:

<Rectangle Fill="{TemplateBinding Background}" Name="rectBackground" Stroke="Black" />
于 2013-10-27T14:28:52.013 回答