MouseLeftButtonDown 不适用于样式内的边框
MouseLeftButtonDown does not work on Border inside a Style
我在样式内的边框上使用 MouseLeftButtonDown。我收到此错误:
The event 'MouseLeftButtonDown' cannot be specified on a Target tag in a Style. Use an EventSetter instead.
这是我的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>
如何解决这个问题?
How to fix this?
例如,您可以将 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>
我在样式内的边框上使用 MouseLeftButtonDown。我收到此错误:
The event 'MouseLeftButtonDown' cannot be specified on a Target tag in a Style. Use an EventSetter instead.
这是我的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>
如何解决这个问题?
How to fix this?
例如,您可以将 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>