我在設置WPF中的嵌套樣式時遇到了問題。我不知道我是否以'正確的方式'做事 - 但我會描述我正在嘗試做什麼並提供一些代碼。嵌套元素的故障設置樣式
我正在使用Kinect,並使用ContentControl在我的ViewModel中表示Kinect對象。我宣佈它是這樣:
<ContentControl Content="{Binding Kinect}" ContentTemplate="{StaticResource SkeletonTemplate}" />
我然後設置SkeletonTemplate這樣:
<DataTemplate x:Key="SkeletonTemplate">
<Grid>
<ContentControl Content="{Binding HandLeft}" ContentTemplate="{StaticResource JointTemplate}"/>
<ContentControl Content="{Binding HandRight}" ContentTemplate="{StaticResource JointTemplate}"/>
</Grid>
</DataTemplate>
最後,我設置了一個JointTemplate這樣:
<DataTemplate x:Key="JointTemplate">
<Ellipse Fill="Red" Margin="0,0,620,460">
<Ellipse.RenderTransform>
<TranslateTransform X="{Binding Path=Position.X}" Y="{Binding Path=Position.Y}" />
</Ellipse.RenderTransform>
</Ellipse>
</DataTemplate>
一切都虎背熊腰,腳蹬除非我真的希望能夠設置一個最高級別的樣式,使我可以對嵌套元素進行樣式設置。例如,我希望能夠這樣做:
<ContentControl Content="{Binding Kinect}" Style="{DynamicResource ShrunkBlueSkeleton}" ContentTemplate="{StaticResource SkeletonTemplate}" />
並立即將一組規則應用於嵌套元素。使橢圓藍色,將ValueConverter應用於SkeletonTemplate中的ContentControls,以將它們縮放到屏幕的較小部分等。
我有一個時間讓它工作,我不確定如果我甚至已經以「正確」的方式將所有的東西都建立起來了。
當然,我可以重新聲明大量不同的ContentTemplates,它們以我需要的所有不同方式呈現,但這種風格明顯更糟。
在那裏可以伸出援助之手嗎?
我可以粘貼到目前爲止我所做的樣式嘗試,但我相信他們不會幫助討論。
不能回答你的問題,但嘗試使用表達式混合造型....它會幫助很多.. :) – om471987 2012-02-29 02:54:44