0

私は 、RibbonApplicationMenuItem の 16x16 ピクセル イメージで、リボン メニュー項目にあるイメージを小さくする方法を尋ねていました (いずれにせよ、それが望ましいかのように 32x32 に伸ばさないでください)。

そのようなコントロールのコントロール テンプレートを置き換えることに基づいて、優れた答えを得た後、代わりに既存のテンプレートを使用して、generic.xaml にプロパティを変更するセッターを含めることができると考え始めました。

リボン コントロールのコンポーネント構造を確認する方法 プロパティ「テンプレート」を右クリックし、コントロール テンプレートを既存の xaml ファイルに抽出することで簡単に実行できます。

このようなメニュー項目のコンポーネント構造全体を調べることができました。あちこちに名前の付いたコンポーネントがあり、「Image」という名前のコンポーネントを見つけました。

だから私はgeneric.xamlでこれをやろうとしました:

<Style TargetType="{x:Type ribbon:RibbonApplicationMenuItem}">
  <Setter Property="Image.Height" Value="16" />
  <Setter Property="Image.Width" Value="16" />
</Style>

<Style TargetType="{x:Type ribbon:RibbonApplicationSplitMenuItem}">
  <Setter Property="Image.Height" Value="16" />
  <Setter Property="Image.Width" Value="16" />
</Style>

しかし、私が得たのはこれだけでした:

ここに画像の説明を入力

効果はありましたが、実際はどうなのでしょうか?私は何を間違えましたか?このようなコントロールの名前付き画像のサイズを変更できますか?

4

2 に答える 2

0

generic.xaml のテーマでこのようなことを試したことはありませんが、新しいファイルを作成して新しいリソースディクショナリを作成できます。スタイルを挿入し、x:Key 属性を x:Key{x:Type ribbon:RibbonApplicationMenuItem} のように設定します。App.xaml に移動すると、次のようになります。

<Application x:Class="Coba.WPF.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"              
             StartupUri="MainPage.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>

                                   <ResourceDictionarySource="yourresourcedictionarypath.xaml" />

            </ResourceDictionary.MergedDictionaries>           
        </ResourceDictionary>
    </Application.Resources>
</Application>
于 2012-08-10T13:30:58.963 に答える
0

わかりました、これは私が研究中に得たものです:

<Setter Property="Image.Height" Value="16" />

名前が「Image」のコントロールではなく、Image のインスタンスの高さを設定しています。

そして使用して

<Setter TargetName="Image" Property="Height" Value="16" />

トリガーでない限り、テンプレート内で TargetName を使用できないため、機能しません。

于 2012-08-13T16:11:13.323 に答える