C# 如何基于变量更改动态设置按钮内容
我创建了一个UserControl,它有一对按钮,像这样的X | X 它们的用途类似于方向按钮、左/右、上/下、+/-等,无论应用程序需要什么。当用户更改程序中的设置时,其上的文本会动态变化 我想做的是根据按钮的设置,它会改变按钮的内容。有时是文字,有时是图片,我认为最好的。现在我只有两个字符串变量保存按钮的文本,它们被绑定到buttons内容属性 例如,当我将文本设置为“左”以在按钮中显示箭头而不是左箭头的漂亮图片时,我需要它。但是当我将文本设置为+,它只使用普通文本来显示+ 如何根据不断变化的文本变量甚至枚举动态更改这些按钮的内容 提前感谢您的帮助 编辑 我知道如何通过使用样式和ContentTemplate触发器的触发器来实现这一点。也许有一种方法可以检查变量的值C# 如何基于变量更改动态设置按钮内容,c#,wpf,C#,Wpf,我创建了一个UserControl,它有一对按钮,像这样的X | X 它们的用途类似于方向按钮、左/右、上/下、+/-等,无论应用程序需要什么。当用户更改程序中的设置时,其上的文本会动态变化 我想做的是根据按钮的设置,它会改变按钮的内容。有时是文字,有时是图片,我认为最好的。现在我只有两个字符串变量保存按钮的文本,它们被绑定到buttons内容属性 例如,当我将文本设置为“左”以在按钮中显示箭头而不是左箭头的漂亮图片时,我需要它。但是当我将文本设置为+,它只使用普通文本来显示+ 如何根据不断变化
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Image Name="normal" Source="{DynamicResource Normal}" Stretch="Fill"/>
<Image Name="pressed" Source="{DynamicResource Pressed}" Stretch="Fill" Visibility="Hidden"/>
<Image Name="disabled" Source="{DynamicResource Disabled}" Stretch="Fill" Visibility="Hidden"/>
<TextBlock Name="text" Text="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="normal" Property="Visibility" Value="Hidden"/>
<Setter TargetName="pressed" Property="Visibility" Value="Visible"/>
<Setter TargetName="text" Property="Text" Value="Pressed :)"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="normal" Property="Visibility" Value="Hidden"/>
<Setter TargetName="disabled" Property="Visibility" Value="Visible"/>
<Setter TargetName="text" Property="Text" Value="Disabled :("/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
你应该使用触发器
<Button>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding SomeProperty}" Value="{x:Static n:YourEnum.Value}">
<Setter Property="Content">
<Setter.Value>
<!-- add the content you want to see in this case -->
<Image Source="…" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>