MouseLeftButtonDown не работает на границе внутри стиля - PullRequest
0 голосов
/ 05 февраля 2020

Я использую MouseLeftButtonDown на границе внутри стиля. Я получаю эту ошибку:

Событие MouseLeftButtonDown не может быть указано для тега Target в стиле. Вместо этого используйте 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>

Как это исправить?

1 Ответ

2 голосов
/ 05 февраля 2020

Как это исправить?

Например, вы можете определить Style для Border как отдельный ресурс:

<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>
...