Potrzebuję wyłączyć standardowe menu kontekstowe TextBox. I utworzeniu nowego projektu WPF i dodawali następujący:WPF ContextMenu = {x: Null}, ale nadal pokazuje menu wewnątrz 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>
Ale to, co otrzymuję:
Poniższy kod działa poprawnie:
<Grid>
<TextBox ContextMenu="{x:Null}" VerticalAlignment="Top" HorizontalAlignment="Left" Width="50"></TextBox>
</Grid>
Dlaczego czy to się dzieje?
Aktualizacja.
Zgodnie z zaakceptowaną odpowiedzą utworzyłem klasę wywodzącą się z TextBox, aby móc pokazać rodzicom ContextMenu.
public class TextBoxNoMenu: TextBox
{
public TextBoxNoMenu()
{
ContextMenu = null;
}
}
Moim początkowym celem było otwarcie Parent ContextMenu. Tak więc, zwijanie nie rozwiązuje rzeczywistego problemu. Jednak gdy zobaczyłem twoją odpowiedź, stworzyłem klasę TextBoxNoMenu wyprowadzoną z TextBox i nulled jej menu kontekstowe. –