0


0

WPF MenuItemヘッダーテキストが部分的に非表示になっています

メニューに項目が表示される方法をテンプレート化しましたが、不明な理由で、MenuItemにテキスト全体を表示するのに問題があります。 問題のスクリーンキャプチャは次のとおりです。http://img203.imageshack.us/img203/4513/capturexz.png [alt text http://img203.imageshack.us/img203/4513/capturexz.png]

テンプレートに使用したマークアップコードは次のとおりです。


そしてそれを表示するには:


よく検索しましたが、この問題を解決するのに何も役立ちませんでした。 私はここでいくつかの助けを見つけることを願っています。

ありがとう。

1 Answer


1


MenuItem内にMenuItemがあるため、奇妙な動作をしています。 メニューでItemTemplateを設定することにより、各MenuItemでHeaderTemplateを設定しています。 MenuItemは通常のテンプレートをレンダリングし、ヘッダーテキストが通常配置される場所には、他のMenuItem全体が含まれます。 表示されるスペースは、外側のMenuItemのInputGestureTextに予約されているスペースだと思います。

代わりに、ItemContainerStyleを設定します。 これにより、Menuによって作成されたMenuItemのプロパティを設定できます。 MenuItemごとに個別のImageオブジェクトを作成できるように、使用する必要があるトリックが1つあります。 デフォルトでは、スタイルに含まれるオブジェクトは共有され、すべてのMenuIteで共有されるImageオブジェクトを1つ取得しますが、それらを別のリソースディクショナリに配置すると、共有されないものとしてマークできます。 http://connect.microsoft.com/VisualStudio/feedback/details/497408/wpf-menuitem-icon-cannot-be-set-via-setter [接続に関するこの問題]およびhttp://www.julmarを参照してください。 com / blog / mark / 2009/04/29 / MenusAndMVVM2.aspx [リンクされた回避策]。

このようなもの:


Icon.xamlには次が含まれます。