gpt4 book ai didi

c# - 用户控件而不是按钮

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

我有一个StackPanel,其中包含一些包含图像的按钮。
到目前为止,它可以正常工作,但是我的问题是,值得为按钮创建用户控件,还是应该像StackPanel一样使用它?

<StackPanel>
<Button>
<Image>
...
</Image>
</Button>
<Button>
<Image>
...
</Image>
</Button>
<Button>
<Image>
...
</Image>
</Button>

建议的用户控件应为:
<Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControlToolButton}}}">
<Button x:Name="ButtonBase" Command="{Binding Click}" ToolTip="{Binding ToolTip}" Style="{StaticResource ButtonStyle}">
<Image x:Name="ImageButton" RenderOptions.BitmapScalingMode="HighQuality">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="{Binding SourceBase}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="{Binding SourceMouseOver, TargetNullValue=SourceBase}"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Button>

最佳答案

如果将ItemsControlItemTemplate一起使用,则可以不使用Button内联定义UserControl或重复自己:

<ItemsControl ItemsSource="...">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button ...>
<Image ...>
<Image.Style>
...
</Image.Style>
</Image>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
如果没有,您可能应该创建一个 UserControl,以便不必重复定义相同的标记。或 Style

关于c# - 用户控件而不是按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62537912/

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