gpt4 book ai didi

WPF 按钮样式

转载 作者:行者123 更新时间:2023-12-04 14:09:01 25 4
gpt4 key购买 nike

我有一个 WPF 窗体,它有许多具有相同代码的按钮。所有按钮的外观必须相同例如,这些按钮之一的代码

<Button x:Name="btnAddRelative" Width="120" Click="btnAddRelative_Click"  >
<Button.Content>
<StackPanel Orientation="Horizontal">
<Image Height="26" HorizontalAlignment="Left">
<Image.Source>
<BitmapImage UriSource="images/add.png" />
</Image.Source>
</Image>
<TextBlock Text=" Add Relative" Height="20" VerticalAlignment="Center"/>
</StackPanel>
</Button.Content>
</Button>

如何创建一种样式并将其用于所有按钮。所有按钮都具有相同的 png 图像,只是它们的文本不同。我怎样才能做到这一点。我尝试使用资源部分中的 Style 对象执行此操作:

<UserControl.Resources>
<Style TargetType="Button" x:Key="AddStyle">
<Setter Property="Content">
<Setter.Value>
<StackPanel Orientation="Horizontal">
<Image Height="26" HorizontalAlignment="Left">
<Image.Source>
<BitmapImage UriSource="images/add.png" />
</Image.Source>
</Image>
<TextBlock Text=" " Height="20" VerticalAlignment="Center"/>
</StackPanel>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>

但是这段代码不起作用。任何人都可以知道我该怎么做吗?

最佳答案

如果图像是固定的,您可以在样式中对其进行硬编码,并将Button bin 的Content 属性用于Content 文本框

 <Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<StackPanel
Orientation="Horizontal">
<!--<Image Height="26" HorizontalAlignment="Left">
<Image.Source>
<BitmapImage UriSource="images/add.png" />
</Image.Source>
</Image>-->
<TextBlock
Foreground="{TemplateBinding Foreground}"
Text="{TemplateBinding Content}"
Height="20"
VerticalAlignment="{TemplateBinding VerticalAlignment}"/>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

关于WPF 按钮样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com