Qualcuno sa perché questo produrrebbe un XamlParseException "Impossibile aggiungere il contenuto di tipo 'System.Windows.Controls.ContextMenu' a un oggetto di tipo 'System.Object'":ContextMenu in stile setter
<ItemsControl>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas ClipToBounds="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Remove" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
E il seguente funziona bene?
<ItemsControl>
<ItemsControl.Resources>
<ContextMenu x:Key="NodeContextMenu">
<MenuItem Header="Remove" />
</ContextMenu>
</ItemsControl.Resources>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas ClipToBounds="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="ContextMenu" Value="{StaticResource NodeContextMenu}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
che è strano. Il valore deve prevedere qualcosa, ma non vedo perché ciò causerebbe un'eccezione ... Se questo è in Expression Blend, potrebbe valere la pena riaprire tutto perché può riprodurre a volte –
in Visual Studio 2008 mentre l'applicazione viene eseguita, ho spostato il menu di scelta rapida in risorse e funziona, ma penso che dovrebbe funzionare anche con il setter, forse è un bug – serine
Questo è effettivamente lo stesso problema con [questa domanda] (http: // StackOverflow. com/domande/1495489/non-a-set-system-windows-controlli-menuitem-icona-thru-a-setter). – CodeNaked