Как работает наведение мыши на WPF? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть прямоугольник с интервалом столбца 2 и меткой и кнопкой в ​​строке сетки.

<Rectangle Grid.Row="2" Grid.ColumnSpan="2"></Rectangle>
<Label Grid.Row="2" Grid.Column="0">Product Two</Label>
<Button Grid.Row="2" Grid.Column="1" Click="Button2_Click">Select</Button>

Я намерен изменить цвет заливки прямоугольника при наведении указателя мыши на строку.Но, кажется, наведение курсора на ярлык или кнопку предотвращает наведение указателя мыши на прямоугольник, в отличие от HTML.

Это поведение по умолчанию?Какой правильный подход?

Правка, полный XAML для сетки

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <Grid.Resources >
        <Style TargetType="{x:Type Rectangle}">
            <Setter Property="Fill" Value="Transparent"/>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Fill" Value="#44000000"/>
                </Trigger>
            </Style.Triggers>
        </Style>            
    </Grid.Resources>

    <Label Grid.Row="0" Grid.Column="0" FontWeight="Bold">Product</Label>
    <Label Grid.Row="0" Grid.Column="1">Choose</Label>

    <Rectangle Grid.Row="1" Grid.ColumnSpan="2"></Rectangle>
    <Label Grid.Row="1" Grid.Column="0">Product One</Label>
    <Button Grid.Row="1" Grid.Column="1" Click="Button1_Click">Select</Button>
</Grid>

1 Ответ

0 голосов
/ 29 мая 2018

Кажется, что вы хотите достичь, можно решить, заменив прямоугольник на Grid, обозначающий другие ваши элементы.

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <Label Grid.Row="0" Grid.Column="0" FontWeight="Bold">Product</Label>
    <Label Grid.Row="0" Grid.Column="1">Choose</Label>

    <Grid Grid.Row="1" Grid.ColumnSpan="2">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="3*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.Resources >
            <Style TargetType="{x:Type Grid}">
                <Setter Property="Background" Value="Transparent"/>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="#44000000"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Grid.Resources>
        <Label Grid.Row="1" Grid.Column="0">Product One</Label>
        <Button Grid.Row="1" Grid.Column="1">Select</Button>
    </Grid>
</Grid>

Есть некоторые другие вещи, которые я хочу изменить с помощью этого xaml, но этоне является частью вашей проблемы.

Дайте мне знать, если это дает желаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...