2

カスタムColorプロパティを備えたこのライブラリがあります。XAMLでこれらのプロパティを次のように使用できるようにしたいと思います。

    <Style TargetType="{x:Type eg:MyWindow}">
        <Setter Property="Background">
            <Setter.Value>
                <SolidColorBrush Color="CustomClass.CustomColorProperty"/>
            </Setter.Value>
        </Setter>
    </Style>

CustomClassを含む名前空間はすでに参照されています。これについてはどうすればよいですか?ありがとう。

編集:

CustomClassが静的であることに気付いたので、XAMLでそのインスタンスを作成できません。また、たとえば:と入力すると、CustomClassがインテリセンスで表示されません。インスタンスクラスがあったとしても、ソリューションを機能させることはできません。この状況の回避策はありますか?

編集2:

これは実際のクラスと名前空間です。

namespace Assergs.Windows
{
    public static class OfficeColors
    {
        public class Background
        {
            public static Color OfficeColor1 = (Color)ColorConverter.ConvertFromString("#e4e6e8");
            public static Color OfficeColor2 = (Color)ColorConverter.ConvertFromString("#dce0ed");
            public static Color OfficeColor3 = (Color)ColorConverter.ConvertFromString("#a8c3e0");
        }
    }
}

そしてこれはXAML名前空間です:

xmlns:aw="clr-namespace:Assergs.Windows;assembly=Assergs.Windows"

そして、Zenukaが提案したように、この行を使用すると、次のようになります。

<SolidColorBrush Color="{x:Static aw:OfficeColors.Background.OfficeColor1}"/>

コンパイル時にこのエラーがスローされます。

Cannot find the type 'OfficeColors.Background'. Note that type names are case sensitive.
4

3 に答える 3

4

これを使って:

<SolidColorBrush Color="{x:Static aw:OfficeColors+Background.OfficeColor1}"/>

ネストされたクラスを参照するには、ドットではなく+記号に注意してください

于 2009-10-28T10:07:14.540 に答える
2

CustomClassにStaticプロパティがあると思いますか?次に、次を使用できます。

<SolidColorBrush Color="{x:Static eg:CustomClass.CustomColorProperty}"/>

ただし、名前空間プレフィックスを変更する必要があるかもしれません...

編集:
問題は、別のクラスでクラスを宣言しているためにあります...クラスBackgroudをOfficeColorsクラスの外に移動して静的に宣言するか、BackgroundクラスのプロパティをOfficeColorsクラスに移動することをお勧めします(おそらく背景プレフィックス)、またはあなたが試みているように名前空間を使用してください。

楽しむ :)

EDIT2:ネストされたクラスを参照するために+記号'aw: OfficeColors
+ Background.OfficeColor1'を使用してNirのメソッドを使用します、それを知りませんでした:)

于 2009-10-28T07:38:55.503 に答える
1

クラスのインスタンスをリソースの1つとして宣言する必要があります。(CustomColorPropertyが静的ではないと仮定)

<CustomNamespace.CustomClass x:Key=CcInstance />
<Style TargetType="{x:Type eg:MyWindow}">        
     <Setter Property="Background">            
         <Setter.Value>                
              <SolidColorBrush Color="{Binding Source={StaticResource CcInstance}, Path=CustomColorProperty} />            
         </Setter.Value>        
     </Setter>    
</Style>
于 2009-10-28T07:40:28.980 に答える