0

さまざまな色のリストボックスアイテムを含むリストボックスがあり、それぞれにテキストが含まれています。それぞれに、上から下に向かって明るい色から暗い色への標準的なグラデーションパターンを適用したいと思います。

GradientStopsを含むリストボックスにスタイルを適用することで、C#の特定の色でこれを行うことができます。ただし、リストボックス全体に単一のカラーグラデーションを適用したくありません。「宣言された色よりX%軽く始めて、宣言された色で終わる」という方針に沿って何かを探しています。

また、各リストボックスアイテムを独自のカラーグラデーションで個別にスタイル設定することも検討しましたが、これを行う方法を見つけることができませんでした。

リストボックスはxamlで定義されているため、ソリューションはxamlまたはC#にすることができます。何か案は?

ありがとう。

4

2 に答える 2

0

私はこのようなことをしたことを覚えています...

  1. 明るい背景を持つこと。
  2. ベースカラーを両方のストップにバインドします。
  3. コンバーターを介してアルファチャンネルを変更することにより、最初のストップで不透明度を下げます。

このようなスタイルを個々のアイテムに適用するには、ItemContainerStyle.

于 2012-08-23T20:22:49.633 に答える
0

これはあなたが探しているものですか?

<ListBox.ItemTemplate>
            <DataTemplate>
                    <Border Margin="5,5,7,7" Background="WhiteSmoke" 
                            BorderBrush="#FF444444" BorderThickness="1" Padding="5">
                    <TextBlock Text="{Binding}" Width="150">
                      <TextBlock.Background>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                          <GradientStop Color="Yellow" Offset="0.0" />
                          <GradientStop Color="Red" Offset="0.25" />
                          <GradientStop Color="Blue" Offset="0.75" />
                          <GradientStop Color="LimeGreen" Offset="1.0" />
                        </LinearGradientBrush>
                      </TextBlock.Background>
                    </TextBlock>
                </Border>
            </DataTemplate>
于 2012-08-23T21:56:19.487 に答える