0

次のコードを使用して、リソース ディクショナリにスタイルを作成しています。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:Chart="clr-namespace:TestApp.Controls.Chart">


<Style x:Key="DefaultLabelStyle" TargetType="{x:Type Chart:LabelStyle}">
    <Setter Property="LabelBrush">
        <Setter.Value>
            <SolidColorBrush Color="Red"/>
        </Setter.Value>
    </Setter>
    <Setter Property="LabelFontSize" Value="12.0"/>
    <Setter Property="Visibility" Value="False"/>
    <Setter Property="OrientationAngle" Value="0"/>
    <Setter Property="LabelPlacement" Value="Top"/>
    <Setter Property="LabelOrientation" Value="Normal"/>
</Style>

そして、次のコードを使用してそれを消費しようとしています:

 public static void LoadSkin()
    {
        var _skinDictionary = new ResourceDictionary { Source = new Uri("/Chart;component/Resources/DefaultSkin.xaml", UriKind.RelativeOrAbsolute) };
    }

しかし、「タイプ参照がタイプを見つけることができません」という例外をスローし、LabelStyleが見つからないことに言及しています。しかし、LabelStyle は Chart の public クラスです。

ここで何が間違っていますか?

ここで同様の問題を抱えている他のスレッドをチェックして、それらの変更を加えようとしましたが、

それでも機能しません:(

あなたの提案を教えてください.. !!

4

1 に答える 1

1

FrameworkElement または FrameworkContentElement から派生していない型に Style を適用することはできません。Style.TargetTypeの備考セクションを参照してください。

おそらく、LabelStyleクラスは次のようにリソースからプロパティ値を取得できます。

<ResourceDictionary ...
    xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:Double x:Key="LabelFontSize">12.0</sys:Double>
    ...
</ResourceDictionary>
于 2012-07-09T07:16:34.900 に答える