2010-11-24 40 views
3

WPFのContextMenuに問題があります。メニューはそれほど広すぎます。私が置いたアイテムの幅に約50ピクセルを加えたものです。だから、メニューを開くときに、オプションやボタンのクリーンなリストではなく、それぞれの側に大きなグリーズスペースがあります。これをどうすれば解決できますか?WPFのContextMenuが大きすぎます

編集:

<ContextMenu Padding="0"> 
    <Button Content="Close Tab" Height="23" Name="closetabbutton" Width="75" Margin="0,0,0,0" Click="closetabbutton_Click" /> 
    <TextBox Height="23" Name="renamebox" Width="75" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ClipToBounds="True" TextChanged="renamebox_TextChanged" /> 
    <Button Content="Close Menu" Height="23" Name="closemenubutton" Width="75" Margin="0,0,0,0" Click="closemenubutton_Click" /> 
</ContextMenu> 
+0

コードplease ... –

+0

ユーザビリティの観点からコンテキストメニューを使用するのは普通ではないようです。通常は、MenuItemをボタンではなくContextMenuに追加します。 –

+0

@chibacity:MenuItemsがありますか? MenuItemに変更すると、ContentプロパティをHeaderプロパティに変更しても、テキストは表示されません。 – Puppy

答えて

2

スペースは、左のアイコンのために予約されており、右側の入力ジェスチャテキスト(たとえば、Ctrlキー+ C):ここに私のメニューのXAMLです。これは設計によるものです。

これを変更したい場合は、独自のContextMenuスタイルを作成する必要があります。ここでこれを行う方法の例です:あなたはボタンを使用している、のMenuItemが通常使用される

http://www.dev102.com/2008/06/20/how-to-create-a-wpf-custom-context-menu/

更新私の質問のコメントにさらに

。例:

+0

InputGestureTextを認識するための独自のコードを記述する必要はありますか? – Puppy

+0

@DeadMG InputGestureTextは、表示のみを目的としており、ジェスチャを手動でフックするときに使用するように設計されています。 RoutedCommandをメニュー項目にバインドし、KeyGestureがある場合、メニュー項目は自動的にジェスチャーテキストを取得します。残念ながら、それはかなり複雑なトピックです。 –

関連する問題