gpt4 book ai didi

c# - 如何基于继承的样式创建样式

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:23 26 4
gpt4 key购买 nike

所以我有一个主从页面。在我的母版页中,我有一个样式可以为所有按钮设置样式。

母版页

 <Style TargetType="Button">
<Setter Property="Background" Value="White" />
<Setter Property="TextBlock.TextAlignment" Value="Center" />
<Setter Property="RenderTransformOrigin" Value="-0.893,-11.7"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>

在我的详细信息页面中,我有一个按钮,我想在其中添加一些触发器以通过样式

            <Button Content="{Binding DeleteMultipleButton}" Margin="0,0,5,0" CommandParameter="{Binding ElementName=files, Path=SelectedItems}" Command="{Binding DeleteMultipleFiles}">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="IsEnabled" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Deleting}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>

但这会覆盖继承的样式,并且我会丢失我的按钮样式。有没有办法让我的按钮样式基于继承的样式? (我不能通过静态资源和 key 来做到这一点,因为资源在不同的页面中)

最佳答案

您可以使用 BasedOn 属性:

<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">

保持基本按钮样式不变:

<Style TargetType="Button">
<Setter Property="Background" Value="White" />
<Setter Property="TextBlock.TextAlignment" Value="Center" />
<Setter Property="RenderTransformOrigin" Value="-0.893,-11.7"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>

并将 BasedOn 属性应用于详细信息页面上的按钮:

<Button>
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
...
</Style>
</Button.Style>
</Button>

关于c# - 如何基于继承的样式创建样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28875678/

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