Кнопка увеличивается на 8 пикселей при использовании MouseOver WPF XAML - PullRequest
1 голос
/ 09 августа 2010

Я имею дело с довольно неприятной ошибкой. Моя конечная цель - получить изображение, которое светится на IsMouseOver, и его можно щелкнуть, чтобы вызвать событие. Это кажется слишком сложным, но другой альтернативой, которую я нашел, было создание пользовательского элемента управления, который является еще более чрезмерным. Это то, что я сделал до сих пор:

<Style x:Key="DelButton" TargetType="Button">
        <Setter Property="Padding" Value="0" />
        <Setter Property="Background" Value="Red" />
        <Setter Property="BorderBrush" Value="Transparent" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Image Source="/HaskList;component/Images/Del24.png" Stretch="None"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Image Source="/HaskList;component/Images/Del24h.png" Stretch="None"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>

Моя кнопка определяется как:

<Button HorizontalAlignment="Right" Margin="0,28,6,0" Name="delButton" VerticalAlignment="Top" Style="{DynamicResource DelButton}" Click="delButton_Click" />

Вот что происходит:

alt text

Спасибо за любые предложения.

1 Ответ

2 голосов
/ 09 августа 2010

Я столкнулся с этим и на днях, и, возможно, одно из изображений имеет стандартное разрешение 96 точек на дюйм, а другое - что-то другое. У меня было одно изображение с разрешением 78 точек на дюйм или чем-то еще, и поэтому размер получался странным.

...