3

ブラシを直接配置するGrid.Background か設定Background="{StaticResource BackgroundGradient}"することで、オブジェクトの背景をグラデーションに設定できます(うまくいくと思っていましたが、テストしただけでアプリがクラッシュします)が、セッター ( <Setter Property="Background" Value="{StaticResource BackgroundGradient}">) はアプリをクラッシュさせます。

Setter を介して設定すると初めて機能し、アプリを閉じてグラデーションを数回コピー/貼り付けし、名前と色を変更して必要な他のグラデーションを作成し、その後、Setter がグラデーションを設定するたびにクラッシュしました。

Style オブジェクトの関連コードは次のとおりです。

<Style x:Key="MainBackground" TargetType="Panel">
    <Setter Property="Background" Value="{StaticResource BackgroundGradient}"/>
</Style>

対応するグラデーションを次に示します (デザイン ビューでグラデーションを作成し、[リソースに変換] を使用して生成されます)。

<LinearGradientBrush x:Key="BackgroundGradient" EndPoint="0.5,1" StartPoint="0.5,0">
    <LinearGradientBrush.RelativeTransform>
        <CompositeTransform CenterY="0.5" CenterX="0.5" Rotation="-90"/>
    </LinearGradientBrush.RelativeTransform>
    <GradientStop Color="#9BC6C5"/>
    <GradientStop Color="#BAD8D7" Offset="1"/>
</LinearGradientBrush>

どんな助けでも大歓迎です。私が現在それを機能させる唯一の方法は、スタイル定義のグラデーションへの参照を削除することですが、個々のアイテムにグラデーションを設定する必要はありません。

4

1 に答える 1

2

これは非常に一般的な問題です。

<Style x:Key="MainBackground" TargetType="Panel">
    <Setter Property="Background" Value="{StaticResource BackgroundGradient}"/>
</Style>

この後に実行されます

<LinearGradientBrush x:Key="BackgroundGradient" EndPoint="0.5,1" StartPoint="0.5,0">
    <LinearGradientBrush.RelativeTransform>
        <CompositeTransform CenterY="0.5" CenterX="0.5" Rotation="-90"/>
    </LinearGradientBrush.RelativeTransform>
    <GradientStop Color="#9BC6C5"/>
    <GradientStop Color="#BAD8D7" Offset="1"/>
</LinearGradientBrush>

このリソースを設定するファイルが 2 つ以上ある場合は、最初に両方のスタイルを同じファイルに設定し、 Panel の前に Brush が定義されていることを確認してください。したがって、個々のファイルで作成し、最初にどのファイルが実行されているかを監視してください。

于 2012-11-04T15:11:33.357 に答える