Xaml中的标签和按钮中的“MouseOver”

时间:2013-12-26 21:56:51

标签: c# wpf xaml

我对Xaml很新,但我一直在利用WPF。出于这个原因,我已经制作了以下方法,我用它来改变标签或按钮的图像,我想要实现鼠标悬停或鼠标离开事件。

public void SImpleImageHadler(dynamic thing, String Path) {
        ImageBrush IB = new ImageBrush();
        IB.ImageSource = new BitmapImage(new Uri("pack://application:,,,/" + Path, UriKind.Absolute));
        thing.Background = IB;
} 

我想知道如何使用xaml完全实现这一点,这样我就不必为每个UI元素制作很多事件处理程序。

2 个答案:

答案 0 :(得分:3)

在按钮的样式触发器中,您可以使用此类代码来更改属性。要查看特定于图片的示例,请查看this问题。

<Style.Triggers>
    <Trigger  Property="IsMouseOver"  Value="True">
         <Setter Property="Background" Value="Blue" />
    </Trigger>
</Style.Triggers>

来自this的回答是图片示例:

<Trigger Property="IsMouseOver" Value="True">
    <Setter Property="Background">
        <Setter.Value>
            <ImageBrush ImageSource="/MyProjectName;component/Images/MyImage.jpg" />
        </Setter.Value>
    </Setter>
</Trigger>

答案 1 :(得分:0)

如果要为许多不同类型的按钮/标签封装此类内容,您应该查看附加属性。

最终结果应如下所示:

<Button
   ns2:MouseOverBackgroundChanger="YourURL"
/>

<Label
  ns2:MouseOverBackgroundChanger="YourUrl2"
/>

此网站包含您需要的一切:http://msdn.microsoft.com/en-us/library/ms749011(v=vs.110).aspx(附加属性概述)