【问题标题】:MouseLeftButtonDown does not work on Border inside a StyleMouseLeftButtonDown 在样式内的边框上不起作用
【发布时间】:2020-05-21 08:14:52
【问题描述】:

我在样式内的边框上使用 MouseLeftButtonDown。我收到此错误:

无法在样式中的目标标记上指定事件“MouseLeftButtonDown”。请改用 EventSetter。

这是我的 xaml:

<ItemsControl.Style>
                    <Style TargetType="{x:Type ItemsControl}">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Path=Items.Count,
                RelativeSource={RelativeSource Self}}"  Value="0">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate>
                                            <Border BorderThickness="2" BorderBrush="Black" CornerRadius="2" Padding="10" Margin="10" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown" >
                                                <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" >Keine Dateien angehängt</TextBlock>
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
            </ItemsControl.Style>

如何解决这个问题?

【问题讨论】:

    标签: wpf xaml styles eventsetter


    【解决方案1】:

    如何解决这个问题?

    例如,您可以为 Border 定义一个 Style 作为单独的资源:

    <ItemsControl>
        <ItemsControl.Resources>
            <Style x:Key="BorderStyle" TargetType="Border">
                <EventSetter Event="MouseLeftButtonDown" Handler="UIElement_MouseLeftButtonDown" />
            </Style>
        </ItemsControl.Resources>
        <ItemsControl.Style>
            <Style TargetType="{x:Type ItemsControl}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=Items.Count, RelativeSource={RelativeSource Self}}"  Value="0">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate>
                                    <Border BorderThickness="2" BorderBrush="Black" CornerRadius="2" Padding="10" Margin="10"
                                                    Style="{StaticResource BorderStyle}">
                                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" >Keine Dateien angehängt</TextBlock>
                                    </Border>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ItemsControl.Style>
    </ItemsControl>
    

    【讨论】:

      猜你喜欢
      • 2014-04-28
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多