C# 使用自定义参数设置触发器的样式
我的XAML中有以下样式:C# 使用自定义参数设置触发器的样式,c#,.net,wpf,.net-4.5,C#,.net,Wpf,.net 4.5,我的XAML中有以下样式: <Style x:Key="NumberButton" TargetType="Button"> <Setter Property="Width" Value="Auto"/> <Setter Property="Height" Value="Auto"/> <Setter Property="Margin" Value="2"/> <Setter Property="Content
<Style x:Key="NumberButton" TargetType="Button">
<Setter Property="Width" Value="Auto"/>
<Setter Property="Height" Value="Auto"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Label Content="{Binding}" FontSize="20" FontFamily="Consolas"/>
</DataTemplate>
</Setter.Value>
</Setter>
<EventSetter Event="Click" Handler="OnClicked"/>
</Style>
我创建了10个
,并将此样式应用于每一个。每个按钮的Content=”“
设置为数字0-9。我想为每个按钮创建一个事件处理程序(通过样式本身),它将Content
属性的值传递给代码隐藏中的事件处理程序
我还是WPF的新手,所以非常感谢您的帮助。谢谢大家! 试试这个
<Style x:Key="NumberButton" TargetType="Button">
<Setter Property="Width" Value="Auto"/>
<Setter Property="Height" Value="Auto"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="Tag" Value="{Binding}"/>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Label Content="{Binding}" FontSize="20" FontFamily="Consolas"/>
</DataTemplate>
</Setter.Value>
</Setter>
<EventSetter Event="Click" Handler="OnClicked"/>
</Style>
您可以从发件人按钮获取
内容
:
void OnClicked(object sender, RoutedEventArgs e)
{
string content = ((Button)sender).Content.ToString();
}
调用内容上的
ToString()
,因为它属于对象类型。将事件处理程序中的事件发送器强制转换为按钮并读取内容可能会起作用,不是吗?请看:这很简单,不需要使XAML过于复杂!谢谢很高兴帮助罗伯特。:)
void OnClicked(object sender, RoutedEventArgs e)
{
string content = ((Button)sender).Content.ToString();
}