Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以全局定义Silverlight 4故事板动画?_C#_Silverlight - Fatal编程技术网

C# 是否可以全局定义Silverlight 4故事板动画?

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" /> &

我在silverlight应用程序中定义了两个动画:

<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();      
    } 
  }
}