将XAML上下文菜单转换为资源

时间:2014-06-06 13:17:28

标签: c# wpf xaml

我试图编辑一些代码,以便上下文菜单包含在xaml文件的资源中而不是实际代码中。上下文菜单是:

<ContextMenu x:Key="CameraControlContextMenu" x:Shared="False" cal:Action.TargetWithoutContext="{Binding Path=DataContext, RelativeSource={RelativeSource Self}}">
    <exclusiveMenuItem:ExclusiveMenuItem x:Name="Turn" Header="{DynamicResource SetCameraToTurn}" IsCheckable="True" IsChecked="{Binding IsTurnMode}" cal:Message.Attach="[Event Click] = [Action TurnMode]" IsEnabled="{Binding IsAvailable}" Icon="{DynamicResource TurningImageSource}"/>
    <exclusiveMenuItem:ExclusiveMenuItem x:Name="Drag" Header="{DynamicResource SetCameraToDrag}" IsCheckable="True" IsChecked="{Binding IsDragMode}" cal:Message.Attach="[Event Click] = [Action DragMode]" Icon="{DynamicResource DragImageSource}"/>            
</ContextMenu>

无论如何,上下文菜单工作正常,位于另一个菜单中:

<splitButton:SplitButton.DropDownContextMenu>
    CONTEXTMENUWASHERE
</splitButton:SplitButton.DropDownContextMenu>

我试图将其提取到XAML文件的资源中,以便我可以在多个地方使用它。我虽然有点麻烦。我已经把它搞好了,问题是在那里的那个拆分按钮内引用资源中的上下文菜单。

我的XAML有点不稳定,我发现研究这有点棘手,虽然我认为解决方案可能非常简单。

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

我没有真正看到你的问题,或者我或者误解了它,或者你只是没有看到木头的树木?如何在正常的短XAML表单中设置控件上的ContextMenu

<splitButton:SplitButton 
    DropDownContextMenu="{StaticResource CameraControlContextMenu}" />