2012-08-23 39 views
0

我有一個列表框,其中包含不同顏色的列表框項目,每個項目都包含文本。我想從上到下應用一個標準的漸變光線模式,在每個模式中從上到下。如何爲不同顏色的listboxitems設置列表框上的標準漸變?

我可以通過將樣式應用於包含GradientStops的列表框來在C#中使用特定顏色來完成此操作。但是我不希望單個顏色漸變應用於整個列表框。我正在尋找的東西沿着「開始X%比宣佈的顏色更輕,並以宣告的顏色結束」。

我也考慮過使用自己的顏色漸變單獨設計每個listboxitem的樣式,但無法找到一種方法來執行此操作。

該列表框是在xaml中定義的,所以解決方案可以是xaml或C#。有任何想法嗎?

謝謝。

回答

0

我記得我做這樣的事情由...

  1. 擁有一個明亮的背景。
  2. 將基礎顏色綁定到兩個站點。
  3. 通過converter更改Alpha通道來降低第一站的不透明度。

要將這種風格應用於每個單獨的物品,請使用ItemContainerStyle

+0

好吧,我要去探索這個並報告回來。 – justJ

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> 
+0

不,「多色」listboxitems可能是錯誤的方式。我們只是說我有單獨的紅色,黃色和藍色列表框項目。我想從上到下漸變,從淺到深,應用到每個。 – justJ

+0

好的,我現在已經使用你的語言了,但這並不明確。 – Paparazzi

相關問題