私はそれをタップするとその状態を変えるようなリストボックス項目にコンテキストメニュー項目を接続しました。アイテムが選択された後に開いたままにするには、メニューを開くか、終了した直後にメニューをプログラムで再開する必要があります。アイテムが選択された後、WP7コンテキストメニューが閉じないようにするにはどうすればよいですか?
私のメニューはそうのようになります。
Some Command 1
Some Command 2
Some Command 3
Inverted
、ユーザーがInverted
コマンドをタップしてからのように見えるのデータバインディングを介してそれらが反転モードで機能させるために、他のいずれかのコマンド、およびメニューをタップすることができますそう:
Some Command 1
Some Command 2
Some Command 3
Inverted ✔
は、タップした後に開いたメニューを維持する方法を理解することができるという、私はそうのような少ない理想的な再オープンしたメニューのアプローチを試みたない:
private void onCommandInvert(object sender, RoutedEventArgs e)
{
CommandState.Instance.Inverted = !CommandState.Instance.Inverted;
// Open it again.
MenuItem menuItem = (MenuItem)sender;
ContextMenu menu = (ContextMenu)menuItem.Parent;
menu.IsOpen = true;
}
しかし、そうすることがmenu.IsOpen = true
声明で次の例外がスローされます:
A first chance exception of type 'System.InvalidOperationException' occurred in
System.Windows.dll
An unhandled exception of type 'System.InvalidOperationException' occurred in
System.Windows.dll
Additional information: Element is already the child of another element.
私も同じ例外が発生して、Closed
イベントに次のことを試してみました:
private void onContextMenuClosed(object sender, RoutedEventArgs e)
{
ContextMenu menu = (ContextMenu)sender;
menu.IsOpen = true;
}
任意のアイデア?ありがとう!
ユーザーは最初にメニューを表示してから、その後に無限にオンとオフを切り替えることができますか?奇妙に思える。 –
また、Silverlight Toolkitのソースを見ると、コンテキストメニューの仕組みがわかります。1.ページの「スクリーンショット」を撮ります。 2.ページの縮尺を変更します。* .9 3.コンテキストメニューが表示されます。 4.コンテキストメニュー自体を追加します。オッズは実際にページが「スクリーンショット」になるので、これはあなたが探している通りに正確にはできません。 tl; dr:あなたのUIはもはやコンテキストメニューを使用しないように考え直すことができるようです。 –