TextBox의 표준 ContextMenu를 비활성화해야합니다. 나는 새로운 WPF 프로젝트를 만든 다음 추가 한 :WPF ContextMenu = {x : Null}하지만 ContentControl 내에 여전히 메뉴가 표시됩니다.
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ContentControl>
<ContentControl.ContentTemplate>
<DataTemplate>
<TextBox ContextMenu="{x:Null}" VerticalAlignment="Top" HorizontalAlignment="Left" Width="50"></TextBox>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</Grid>
</Window>
을하지만 내가 무엇을 얻을 수 있습니다 :
다음 코드는 잘 작동 :
<Grid>
<TextBox ContextMenu="{x:Null}" VerticalAlignment="Top" HorizontalAlignment="Left" Width="50"></TextBox>
</Grid>
왜 이 일이 일어 났습니까?
업데이트.
Answer ContextMenu를 부모에게 보여주기 위해 TextBox에서 파생 된 클래스를 만들었습니다. 당신이 텍스트 상자에의 ContextMenu를 해제 됐는지하면서 다른 컨트롤에 있다면, 당신은 실제로 같은 래퍼의의 ContextMenu를 볼 수 있다는
는public class TextBoxNoMenu: TextBox
{
public TextBoxNoMenu()
{
ContextMenu = null;
}
}
첫 번째 목표는 부모의 ContextMenu를 여는 것이 었습니다. 그래서 붕괴는 실제 문제를 해결하지 못합니다. 그러나, 당신이 대답을 보았을 때 TextBox에서 파생 된 클래스 TextBoxNoMenu를 만들고 해당 컨텍스트 메뉴를 무효화했습니다. –