【发布时间】:2012-03-07 17:42:39
【问题描述】:
我正在尝试为文本块创建一个自定义控件,当鼠标悬停时,会出现一个边框。我对 WPF 很陌生,只做了一些非常简单的自定义控件。我需要在 XAML UserControl 中实现它。
任何建议将不胜感激。再次感谢 StackOverflow。
编辑:我将不得不将持久性属性绑定到几个不同的控件,所以我真的需要在自定义控件中执行此操作。这就是我所拥有的,但它不起作用:
xmlns:customControls="clr-namespace:****.CustomControls"
....
<customControls:MouseOverBorder>
<TextBlock Style="{StaticResource ResourceKey=HomePageButtonText}"
Height="100"
Width="100"
Margin="5"
Text="View Reports" />
</customControls:MouseOverBorder>
还有用户控件:
<UserControl
x:Class="****.MouseOverBorder"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary>
<Style x:Key="MouseOverBorder" TargetType="{x:Type Border}">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CornerRadius" Value="3" />
<Style.Triggers>
<Trigger Property="Border.IsMouseOver" Value="true">
<Setter Property="BorderBrush" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</UserControl.Resources>
<Border Style="{DynamicResource MouseOverBorder}" BorderThickness="1" CornerRadius="3" SnapsToDevicePixels="True"/>
【问题讨论】:
-
创建一个
Style,并为IsMouseOver创建一个Trigger。 (这不需要自定义控件,顺便说一句)
标签: wpf xaml user-controls textblock