wpf - 用于非路由事件的 EventSetter?

标签 wpf xaml event-handling triggers styles

我有一个 Label我正在尝试更改 MouseDown用户是否使用 Trigger 登录的事件.

<Label x:Name="lblSave" MouseDown="lblSave_MouseDown" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" ToolTip="Save Files"  Width="25" Height="25" Margin="0, 0, 5, 0"  >
<Label.Style>
    <Style TargetType="{x:Type Label}">
        <Setter Property="Background" Value="{DynamicResource ResourceKey=saveIcon}" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding Source={x:Static sec:Security.Instance}, Path=IsLoggedIn}" Value="False">
                <Setter Property="Background" Value="{DynamicResource ResourceKey=readonlyIcon}" />
                <EventSetter Event="MouseDown" Handler="lblNoAccess_MouseDown" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Label.Style>

但是,与this相反发布,我将无法使用,因为 MouseDown不是路由事件。我仍然收到 System.Windows.EventSetter.Event错误:{"Value cannot be null.\r\nParameter name: value"} .

所以我的问题是,有没有办法使用触发器来设置非路由事件?

最佳答案

来自 documentation :

Note that only Style.Setters supports EventSetter objects. Triggers (TriggerBase and derived classes) do not support EventSetter.



(同样如评论中所述, MouseDown 被路由。)

关于wpf - 用于非路由事件的 EventSetter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7973606/

相关文章:

wpf - ItemsControl中的Adorner

c# - 使用触发器设置 BorderBrush 的颜色

c# - Application.Current <- 它是如何工作的?

xaml - Windows 8 中的主题过渡 Z-索引

android - 为什么这个移动的圆圈在拖动过程中会振动?

c# - 负货币数 XAML

c# - 将WPF窗口DataContext设置为RelativeSource Self

c# - 可拖动的 silverlight 用户控件

java - 在 Java 中使用事件在另一个类中执行某些操作

c# - 是否可以在 lambda 表达式中定位 EventHandler?