110,537
社区成员
发帖
与我相关
我的任务
分享
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:xClassTest"
x:Class="xClassTest.Class1"
>
<Style TargetType="{x:Type local:CustomControl1}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl1}">
<Viewbox>
<Grid x:Name="TheGrid" Width="50" Height="50">
<Rectangle x:Name="TheRect" Fill="LightBlue"/>
</Grid>
</Viewbox>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Grid.MouseEnter" SourceName="TheGrid">
<BeginStoryboard>
<Storyboard Completed="Storyboard_Completed">
<DoubleAnimation To="100" Storyboard.TargetName="TheGrid"
Storyboard.TargetProperty="Width"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Grid.MouseLeave" SourceName="TheGrid">
<BeginStoryboard>
<Storyboard Completed="Storyboard_Completed">
<DoubleAnimation To="50" Storyboard.TargetName="TheGrid"
Storyboard.TargetProperty="Width"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace xClassTest
{
public class CustomControl1 : Control
{
static CustomControl1()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControl1), new FrameworkPropertyMetadata(typeof(CustomControl1)));
}
}
public partial class Class1 : ResourceDictionary
{
public Class1()
{
InitializeComponent();
}
void Storyboard_Completed(object sender, EventArgs e)
{
MessageBox.Show("Completed!");
}
}
}
<Window x:Class="xClassTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:xClassTest"
Title="Window1" Height="300" Width="300">
<Canvas>
<local:CustomControl1/>
</Canvas>
</Window>