【发布时间】:2015-10-05 03:06:30
【问题描述】:
如果这是一个重复的问题,我很抱歉,但我只有 11 个声望,我无法评论其他问题或做任何事情,所以我不得不再次提问。
我有此代码:code - Quaternion Structure,我想将其添加到我的项目中,但找不到“QuaternionWText”、“endQuaternion”、“myQuaternionRotation3D”和“myRotateTransform3D”。
然后我从这里提出的另一个问题中找到了这部分代码:
XAML 代码
<Storyboard x:Key="TheStoryboard" x:Name="storyboardName">
<DoubleAnimation Storyboard.TargetProperty="Height"
To="500"
Duration="0:0:0.10" />
<DoubleAnimation From="0"
To="1"
Duration="0:0:0.25"
Storyboard.TargetName="MainFrame"
Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
C#代码
Storyboard story = (Storyboard)this.FindResource("storyboardName");
this.BeginStoryboard(story);
但是当我运行代码时,我得到了找不到'storyboardName'资源的错误。
我的类的 XAML 名称是 XplorerMainWindow.xaml,cs 项目名称是 XplorerMainWindow.xaml.cs。我要在其中添加上述 C# 代码的类的名称名为“private void CreateWorker()”。我的 XAML 代码中的所有 x:name 都是:“MainFrame”、“DockingManager”、“MainPanel”、“MainDocPanel”、“DrawingControl”。
我想要做的是我有一个 3D 模型,我想使用四元数旋转它。但是我发现的所有示例都使用 XAML,但我总是收到错误,即他们找不到应该从 XAML 调用的资源。那么我对目标名称做错了什么吗?我应该根据我的班级和姓名进行任何更改吗?我应该将 c# 代码添加到其他地方而不是 CreatWorker() 吗?
编辑
<Window x:Class="XbimXplorer.XplorerMainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xbim="http://schemas.Xbim.com/Presentation"
xmlns:xbimView="clr-namespace:Xbim.IO.ViewModels;assembly=Xbim.IO"
xmlns:local="clr-namespace:XbimXplorer"
xmlns:pt="clr-namespace:PropertyTools.Wpf;assembly=PropertyTools.Wpf"
xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"
Title="Xbim Xplorer" Height="600" Width="800"
x:Name="MainWindow"
Icon="xBIM.ico">
<Window.Resources>
<ObjectDataProvider x:Key="ModelProvider" IsInitialLoadEnabled="False" ></ObjectDataProvider>
<DataTemplate DataType="{x:Type xbimView:XbimModelViewModel}">
<Grid>
<Grid.ColumnDefinitions>
....
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{Binding Name}" FontWeight="Bold"/>
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type xbimView:SpatialViewModel}">
<Grid>
<Grid.ColumnDefinitions>
<....
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{Binding Name}" FontWeight="Bold"/>
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type xbimView:ContainedElementsViewModel}">
<Grid>
<Grid.ColumnDefinitions>
.....
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type xbimView:IfcProductModelView}">
<Grid>
<Grid.ColumnDefinitions>
.....
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
</Grid>
</DataTemplate>
//Here is the Storyboard
<Storyboard x:Key="TheStoryboard" x:Name="storyboardName">
<DoubleAnimation Storyboard.TargetProperty="Height"
To="500"
Duration="0:0:0.10" />
<DoubleAnimation From="0"
To="1"
Duration="0:0:0.25"
Storyboard.TargetName="MainFrame"
Storyboard.TargetProperty=" (FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
</Window.Resources>
这就是我在 XplorerMainWindow.xaml.cs 中的称呼
private void SpatialControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Storyboard story = (Storyboard)this.FindResource("storyboardName");
this.BeginStoryboard(story);
}
【问题讨论】:
标签: c# wpf xaml storyboard quaternions