C# 是否可以全局定义Silverlight 4故事板动画?
我在silverlight应用程序中定义了两个动画:C# 是否可以全局定义Silverlight 4故事板动画?,c#,silverlight,C#,Silverlight,我在silverlight应用程序中定义了两个动画: <Storyboard x:Name="ShowControls"> <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="SlideOutMenu" /> &
<Storyboard x:Name="ShowControls">
<DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="SlideOutMenu" />
</Storyboard>
<Storyboard x:Name="Hide-Controls">
<DoubleAnimation Duration="0:0:0.2" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="SlideOutMenu" />
</Storyboard>
有什么想法吗?我可以发现一些东西 1-故事板
隐藏控件的名称无效,您需要删除-
2-正在设置动画的属性名称不正确TranslateX
应为X
。我假设您使用的是标准的TranslateTransform
3-需要在eventhandler中连接目标属性
这是我做的一个快速测试
App.xaml
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SilverlightApplication1.App"
>
<Application.Resources>
<Storyboard x:Name="ShowControls">
<DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" />
</Storyboard>
<Storyboard x:Name="HideControls">
<DoubleAnimation Duration="0:0:0.2" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" />
</Storyboard>
</Application.Resources>
</Application>
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Canvas x:Name="LayoutRoot" Background="White" Loaded="LayoutRoot_Loaded">
<Border x:Name="SlideOutMenu" BorderBrush="Red" BorderThickness="5">
<Border.RenderTransform>
<TranslateTransform X="100" />
</Border.RenderTransform>
<ListBox Height="200" Width="100" />
</Border>
</Canvas>
</UserControl>
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Canvas x:Name="LayoutRoot" Background="White" Loaded="LayoutRoot_Loaded">
<Border x:Name="SlideOutMenu" BorderBrush="Red" BorderThickness="5">
<Border.RenderTransform>
<TranslateTransform X="100" />
</Border.RenderTransform>
<ListBox Height="200" Width="100" />
</Border>
</Canvas>
</UserControl>
using System.Windows.Shapes;
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
AddEventHandlers();
}
public void AddEventHandlers()
{
SlideOutMenu.MouseEnter += new MouseEventHandler(SlideOutMenu_MouseEnter);
}
public void SlideOutMenu_MouseEnter(object sender, MouseEventArgs e)
{
Storyboard showMenu = Application.Current.Resources["ShowControls"] as Storyboard;
Storyboard.SetTarget(showMenu, SlideOutMenu);
showMenu.Begin();
}
}
}