【发布时间】:2012-03-16 15:42:49
【问题描述】:
浏览了其他相关问题,但我没有看到可以回答这个明确问题的内容。
(在我的例子中,我正在开发一个 Microsoft Surface 应用程序,这是我使用的许多类的来源)
所以,我想将一个包含一些固定项目的 ElementMenu 附加到我的 ScatterView 中的每个 ScatterViewItem,我可以这样做:
<ControlTemplate x:Key="MenuedSVITemplate" TargetType="{x:Type s:ScatterViewItem}">
<Grid>
<ContentPresenter Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
<s:ElementMenu Name="Menu" HorizontalAlignment="Right" VerticalAlignment="Top" ActivationMode="AlwaysActive">
<s:ElementMenuItem Name="MenuItemClose" Header="Close" Click="CloseItemClicked"/>
</s:ElementMenu>
</ContentPresenter>
</Grid>
</ControlTemplate>
然后我可以稍后使用此模板创建 ScatterViewItems:
<ScatterViewItem Name="SomeItem" Template="{StaticResource MenuedSVITemplate"/>
但是,如果我想在模板中定义的菜单中添加其他项目怎么办?有没有办法在 XAML 中做到这一点? (我知道我可以在代码隐藏中使用 Template.FindName 来获取 ElementMenu、向下转换并以编程方式添加我的菜单项。)
提前致谢!
【问题讨论】:
标签: c# wpf templates styles pixelsense