Как мне объединить PreviewMouseLeftButtonDown с Command? - PullRequest
0 голосов
/ 03 апреля 2020

В примере проекта у меня есть кнопка, связанная с Командой. Это работает как событие нажатия кнопки. Однако я хотел бы использовать событие PreviewMouseLeftButtonDown / Up в сочетании с Command. Например LeftButtonDown - заливка зеленым, LeftButtonUp - заливка по умолчанию. Есть ли хороший способ сделать это?

        <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>

        <StackPanel Grid.Column="0">
            <Button Command="{Binding ColourChange_command, Mode=OneWay}" Content="Fill with green" />
        </StackPanel>

        <Ellipse Grid.Column="1" Stroke="Black">
            <Ellipse.Style>
                <Style TargetType="Ellipse">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ColourChange}" Value="True">
                            <Setter Property="Fill" Value="LimeGreen" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Ellipse.Style>
        </Ellipse>
    </Grid>

1 Ответ

0 голосов
/ 04 апреля 2020

Предполагая, что вы хотите изменить Ellipse цвет, пока пользователь удерживает левую кнопку мыши над Button.

<StackPanel Grid.Column="0">
    <Button x:Name="btn" Content="Fill with green" />
</StackPanel>
<Ellipse Grid.Column="1" Stroke="Black">
    <Ellipse.Style>
        <Style TargetType="{x:Type Ellipse}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsMouseDirectlyOver, ElementName=btn}" Value="True">
                    <Setter Property="Fill" Value="LimeGreen"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Ellipse.Style>
</Ellipse>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...