1

私のアプリケーションでは、システム カラーの s を持つフェード ラインを作成したいと思います。次のようにGradientStopしようとしています。

<UserControl.Resources>
    <Style x:Key="Divider" TargetType="Rectangle">
        <Setter Property="Height" Value="2" />
        <Setter Property="Fill">
            <Setter.Value>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                    <GradientStop Color="{StaticResource PhoneChromeBrush}" Offset="0.0" />
                    <GradientStop Color="{StaticResource PhoneInverseBackgroundBrush}" Offset="1.0" />
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
</UserControl.Resources>

しかし、プロジェクトをコンパイルしようとすると、次のエラーが発生します。

A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll
An exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll but was not handled in user code

これを修正するにはどうすればよいですか?

4

2 に答える 2

3

GradientStop.Colorブラシではなく、色が必要です。代わりにPhoneChromeColorandを使用します。PhoneInverseBackgroundColor

<UserControl.Resources>
    <Style x:Key="Divider" TargetType="Rectangle">
        <Setter Property="Height" Value="2" />
        <Setter Property="Fill">
            <Setter.Value>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                    <GradientStop Color="{StaticResource PhoneChromeColor}" Offset="0.0" />
                    <GradientStop Color="{StaticResource PhoneInverseBackgroundColor}" Offset="1.0" />
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
</UserControl.Resources>
于 2013-01-16T15:43:05.667 に答える
0

確かではありませんが、静的な色をブラシとして設定しているようです。「PhoneChromeBrush」または「PhoneInverseBackgroundBrush」の静的リソースにコードを投稿したことがないため、わかりにくいです。ただし、これらを使用してグラデーション ストップを設定しており、それらがグラデーション自体である場合、コードが壊れる可能性があります。通常、グラデーション用に「ブラシ」を予約するので、確信が持てませんでした:

次のようなことはできませんか?

<UserControl.Resources>

<LinearGradientBrush x:Key="MoneyBrush" EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#3A883A" Offset="1" />
                <GradientStop Color="#FFFFFF" Offset="0" />
                <GradientStop Color="#FF53AA75" Offset="0.50" />
                <GradientStop Color="#073307" Offset="0.95" />
            </LinearGradientBrush>
        <Style x:Key="Divider" TargetType="Rectangle">
            <Setter Property="Height" Value="2" />
            <Setter Property="Fill" Value="{StaticResource MoneyBrush}"/>
        </Style>
    </UserControl.Resources>
于 2013-01-16T15:06:20.850 に答える