Answered WPF ContextMenu Styl

  • Friday, May 11, 2012 6:59 PM
     
     
    Hi,

    I have context menu when I right click on datagrid. It works exactly what I want but issue is, this menu style override existing menu style. I want to apply ControlTemplate only to this menu. Pls help.

    Here is XAML

             <ContextMenu  x:Key="cellContextMenu">
            <MenuItem Header="Insert symbol" Margin="0,0,0,0" HorizontalContentAlignment="Right">
                <StackPanel Orientation="Horizontal" Margin="0,0,0,0">
                    <wpfc:SymbolController x:Name="dgSymbolControl" Width="400" Height="400" value="{Binding Path=SelectedSymbolItem, Mode=TwoWay, diagnostics:PresentationTraceSources.TraceLevel=High}"></wpfc:SymbolController>
                    <TextBlock FontFamily="DYMObvba" Text="{Binding ElementName=dgSymbolControl, Path=value}" />
                </StackPanel>
            </MenuItem>
        </ContextMenu>
        <ControlTemplate x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" TargetType="{x:Type MenuItem}">
            <Grid>
                <Border Name="Check" Visibility="Collapsed" Margin="0,0,0,0"></Border>
                <ContentPresenter Grid.Column="1" ContentSource="Header" RecognizesAccessKey="True"/>
            </Grid>
        </ControlTemplate>

    Here is Code to apply Menu:
    eCell.ContextMenu = (ContextMenu)FindResource("cellContextMenu");

    Thanks
    Dee

All Replies

  • Saturday, May 12, 2012 12:45 PM
     
     Answered

    Try this way

    <ContextMenu  x:Key="cellContextMenu">
        <ContextMenu.Resources>
            <ControlTemplate x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" TargetType="{x:Type MenuItem}">
                <Grid>
                    <Border Name="Check" Visibility="Collapsed" Margin="0,0,0,0"></Border>
                    <ContentPresenter Grid.Column="1" ContentSource="Header" RecognizesAccessKey="True"/>
                </Grid>
            </ControlTemplate>
        </ContextMenu.Resources>
            <MenuItem Header="Insert symbol" Margin="0,0,0,0" HorizontalContentAlignment="Right">
                <StackPanel Orientation="Horizontal" Margin="0,0,0,0">
                    <wpfc:SymbolController x:Name="dgSymbolControl" Width="400" Height="400" value="{Binding Path=SelectedSymbolItem, Mode=TwoWay, diagnostics:PresentationTraceSources.TraceLevel=High}"></wpfc:SymbolController>
                    <TextBlock FontFamily="DYMObvba" Text="{Binding ElementName=dgSymbolControl, Path=value}" />
                </StackPanel>
            </MenuItem>
        </ContextMenu>

    • Marked As Answer by Dee Choksi Saturday, May 12, 2012 2:54 PM
    •