gpt4 book ai didi

c# - 修改控件模板时保留控件的主题风格

转载 作者:行者123 更新时间:2023-11-30 16:41:22 24 4
gpt4 key购买 nike

我正在尝试将一些命令绑定(bind)到 Slider.Thumb,这就是我目前的做法:

<Style x:Key="BasicSliderStyle" TargetType="{x:Type customControls:ThumbDragSlider}" BasedOn="{StaticResource {x:Type Slider}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Slider}">
<Grid>
<Track x:Name="PART_Track">
<Track.Thumb>
<Thumb x:Name="Thumb">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<command:EventToCommand Command="{Binding PositionSliderThumbMouseEnterCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
<i:EventTrigger EventName="DragDelta">
<command:EventToCommand Command="{Binding PositionThumbDragDeltaCommand}" CommandParameter="{Binding ElementName=sMovieSkipSlider}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Thumb>
</Track.Thumb>
</Track>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

问题是我也有一个应用于我的控件的主题,如果我使用这种样式,它的样式和效果也会被删除,有没有办法在控件上保留当前应用程序主题样式,同时又能够如上所示添加事件触发器和附加命令吗?

P.S - 因为这是一个派生自 Slider 的自定义控件,所以这就是我为 slider 设置默认主题样式的方式

Style="{StaticResource {x:Type Slider}}"

最佳答案

如果您想为该控件保留相同的主题,则只能在样式中使用触发器,而不能在模板中使用触发器。这意味着在您的情况下是不可能的。您可以做的是复制主题的整个样式并在其中指定触发器。

关于c# - 修改控件模板时保留控件的主题风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211746/

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