wpf

2013-08-22 3 views
0

의 주 윈도우에 사용자 컨트롤을 호출하는이 문제는 기본 창에서 사용자 정의 컨트롤로 만들어진 컨텍스트 메뉴를 사용하는 방법에 관한 것입니다. 사용자 컨트롤과 같은 것입니다 .. wpf

<UserControl x:Class="contextmenu1.context" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     d:DesignHeight="300" d:DesignWidth="300" > 
    <UserControl.Resources> 

    <ContextMenu x:Key="conmen" > 
     <MenuItem Header="Cut" Foreground="Black" FontSize="14" > 
      <!--<MenuItem.Icon > 
      <Image Source="Images/cut.png" Height="20" Width="20" /> 
     </MenuItem.Icon>--> 
     </MenuItem> 
     <Separator /> 
     <MenuItem Header="Copy" Foreground="Black" FontSize="14"> 
      <!--<MenuItem.Icon> 
         <Image Source="Images/copy.png" /> 
        </MenuItem.Icon>--> 
     </MenuItem> 
     <Separator /> 
     <MenuItem Header="Paste" Foreground="Black" FontSize="14"> 
      <!--<MenuItem.Icon> 
         <Image Source="Images/paste.png" /> 
        </MenuItem.Icon>--> 
     </MenuItem> 
     <Separator /> 
     <MenuItem Header="Delete" Foreground="Black" FontSize="14"> 

     </MenuItem> 
     <Separator /> 

    </ContextMenu> 
    <!--<Style TargetType="Button"> 
     <Setter Property="ContextMenu" Value="{StaticResource conmen}"/> 
    </Style>--> 

    </UserControl.Resources> 

    </UserControl> 

과 MainWindow를 코드 같은 것입니다 ..
<Window x:Class="contextmenu1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:dc="clr-namespace:contextmenu1" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Button x:Name="conbut" Content="RightClick" HorizontalAlignment="Left" Margin="234,135,0,0"/> 



    <dc:context />  
    </Grid>  
    </Window> 

내가 필요한 네임 스페이스를 포함하지만, 어떻게 든 내가 버튼의 ContextMenu를 클릭하면, 덕분에 나타나지 않는 경우 어떤 도움이든.

답변

1

컨텍스트 메뉴에 대한 사용자 정의 컨트롤을 정의 할 필요가 없습니다. 대신 공통 리소스 사전 (예 : App.xaml)에 선언하십시오. 그럼 당신은 StaticResource를 통해 상황에 맞는 메뉴에 액세스 할 수 있습니다 App.xaml에서

:

<Button x:Name="conbut" ... ContextMenu="{StaticResource contextMenu}" /> 
0

그냥 같이 창 그리드 ContextMenu, 당신이 '돈 그것을 정의 창에서

<Application.Resources> 
    <ContextMenu x:Key="contextMenu"> 
     ... 
    </ContextMenu> 
</Application.Resources> 

을 버튼이 필요합니다. 그리드 공간에서 오른쪽 클릭을하면 ContextMenu

<Window x:Class="contextmenu1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:dc="clr-namespace:contextmenu1" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid.ContextMenu> 
      <ContextMenu x:Key="contextMenu"> 
       ... 
      </ContextMenu> 
     </Grid.ContextMenu>   
    </Grid>  
    </Window> 
가 열립니다.