我有一个扩展器,其中我有颜色的矩形。我想在一些功能后动态更改。如何在运行时更改它?
<Windows.Resources>
<ControlTemplate x:Key="SimpleExpanderButtonTemp"
TargetType="{x:Type ToggleButton}">
<Border x:Name="ExpanderButtonBorder"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Rectangle x:Name="ExpandRect" Fill="Transparent"
Grid.ColumnSpan="2"/>
<Ellipse Name="Circle"
Grid.Column="0"
Stroke="DarkGray"
Width="20"
Height="20"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
</Grid>
</Border>
</>
</Windows.Resources>
任何人都可以提供帮助:
答案 0 :(得分:0)
如果你想在后面的代码中更改它,我将使用{DynamicResource key}绑定绑定到画笔资源。然后,您的代码可以将该资源更新为您需要的任何内容。
this.Resource["RectangleBrush"] = new SolidColorBrush(Colors.Red);
如果要通过视图模型中的数据对其进行控制,请使用数据触发器。 Link to similar answer
如果您将其基于多个绑定 - 您可以使用带转换器的多重绑定:Tutorial here
答案 1 :(得分:0)
<Rectangle Fill="Transparent" x:Name="ExpanderButtonRectangle"
Grid.ColumnSpan="2"/>
ExpanderButtonRectangle.Fill = new SolidColorBrush(Colors.Red);