Нет необходимости создавать UserControl. Мне удалось сделать это с помощью следующей разметки:
<Border Style="{DynamicResource BorderStyle1}" BorderThickness="1" CornerRadius="3" >
<TextBlock Text="TextBlock" />
</Border>
Вот стиль:
<Style x:Key="BorderStyle1" TargetType="{x:Type Border}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="3"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="#FF123BBA"/>
</Trigger>
</Style.Triggers>
</Style>
EDIT:
До сих пор не понимаю, зачем вам UserControl (не называйте его пользовательским элементом управления - это разные вещи), но давайте рассмотрим ваш пример.
Когда вы пишете следующее
<customControls:MouseOverBorder>
<TextBlock Style="{StaticResource ResourceKey=HomePageButtonText}"
Height="100"
Width="100"
Margin="5"
Text="View Reports" />
</customControls:MouseOverBorder>
вы фактически устанавливаете свойство MouseOverBorder.Content. Первоначально его содержимое определяется в файле MouseOverBorder.xaml. Таким образом, вы заменяете всю свою структуру UserControl на TextBlock. Но все же я понял вашу идею и нашел решение для нее.
Сначала добавьте пользовательский DependencyProperty и оболочку CLR для него в класс MouseOverBorder:
public static readonly DependencyProperty MyContentTemplateProperty =
DependencyProperty.Register("MyContentTemplate", typeof(DataTemplate), typeof(MouseOverBorder), null);
[Browsable(true)]
[Category("Other")]
public DataTemplate MyContentTemplate
{
get { return (DataTemplate)GetValue(MyContentTemplateProperty); }
set { SetValue(MyContentTemplateProperty, value); }
}
Во-вторых, заставьте что-то внутри MouseOverBorder использовать это свойство, например,
<ContentPresenter ContentTemplate="{Binding MyContentTemplate, ElementName=userControl}"/>
<!-- userControl is the Name of MouseOverBorder, defined in xaml -->
Наконец, вы можете использовать свой UserControl следующим образом:
<customControls:MouseOverBorder>
<customControls:MouseOverBorder.MyContentTemplate>
<DataTemplate>
<TextBlock Style="{StaticResource ResourceKey=HomePageButtonText}"
Height="100"
Width="100"
Margin="5"
Text="View Reports" />
</DataTemplate>
</customControls:MouseOverBorder.MyContentTemplate>
</customControls:MouseOverBorder>