مشكلة WPF PropertyPath - لا يمكن حل جميع مراجع العقارات في مسار الممتلكات
-
18-09-2019 - |
سؤال
أنا تكافح للحصول على propertypath للعمل - لدي تحول في موارد النافذة التي أحاول التأثير عليها عبر لوحة العمل - أيضا في موارد النافذة ...
هيريس مسار العقار الذي أستخدمه ...
(Viewport2DVisual3D.Transform).(Transform3DGroup)[0].(RotateTransform3D).(RotateTransform3D.Rotation).(AxisAngleRotation3D.Angle)
تحرير: بفضل اقتراح Anurags، لدي بعض الشيء ... (Viewport2dvisual3d.transform). (تحويل 3dgroup.children) [0]. (rotatetransform3d.rotation). (axisanglerotation3d.jlange)
ولكن الآن أخطاء مع "خاصية الدوران لا تشير إلى dectencyproperty"
يمكن لأي شخص يرجى وضع لي مرة أخرى على المسار الصحيح؟
هيريس الكود بالكامل ...
<Window
x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<Window.Resources>
<Transform3DGroup x:Key="WorldTranslation">
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Axis="0,1,0" Angle="0" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</Transform3DGroup>
<Storyboard x:Key="MyStoryboard">
<DoubleAnimation
Storyboard.Target="{Binding TemplatedParent}"
Storyboard.TargetProperty="(Viewport2DVisual3D.Transform).(Transform3DGroup.Children)[0].(RotateTransform3D.Rotation).(AxisAngleRotation3D.Angle)"
From="0.0" To="360" Duration="0:0:1" />
</Storyboard>
<MeshGeometry3D
x:Key="squareMeshFrontLeft"
Positions="-1,-1,1 1,-1,1 1,1,1 -1,1,1"
TriangleIndices="0 1 2 0 2 3"
TextureCoordinates="0,1 1,1 1,0 0,0" />
<DiffuseMaterial x:Key="visualHostMaterial" Brush="White" Viewport2DVisual3D.IsVisualHostMaterial="True" />
</Window.Resources>
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCamera Position="0,0,10" LookDirection="0,0,-1" />
</Viewport3D.Camera>
<Viewport2DVisual3D Material="{StaticResource visualHostMaterial}" Geometry="{StaticResource squareMeshFrontLeft}" >
<Viewport2DVisual3D.Transform>
<StaticResource ResourceKey="WorldTranslation" />
</Viewport2DVisual3D.Transform>
<StackPanel Background="Blue" Width="80" Height="80">
<Button Height="30" Margin="20">
<Button.Content>Blah</Button.Content>
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource MyStoryboard}" >
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Button.Triggers>
</Button>
</StackPanel>
</Viewport2DVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<AmbientLight Color="White" />
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</Window>
المحلول
بادئ ذي بدء، بدلا من Doubleanimation، استخدم الرسوم المتحركة KeyFrame ثلاثية الأبعاد.
وتصحيح بناء جملة القصة المصورة الخاصة بك باستخدام بناء الجملة (تحويل 3DGroup.children) بدلا من
تحقق من ذلك أيضا:http://social.msdn.microsoft.com/forums/en-us/wpf/thread/78170274-A585-4CD6-85ed-edfd65d34ab.