2011-06-14 38 views
1

我想改變一個數據網格的rowstyle,以便在選中一行時更改背景顏色(不是行背景,而是選擇矩形的顏色,默認情況下也是有點太粗糙爲我的應用閃亮)。然而,我看到的應用於網格風格的行爲是,所有的行都像摺疊的百葉窗一樣縮小。這是我寫的風格:在datagrid中設置rowstyle 4

<Style x:Key="DataGridRowStyle" TargetType="sdk:DataGridRow"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="sdk:DataGridRow"> 
         <sdk:DataGrid> 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates">          
            <VisualState x:Name="Normal Selected"> 
             <Storyboard> 
              <ColorAnimation 
               Storyboard.TargetName="ButtonBrush" 
               Storyboard.TargetProperty="Color" 
               To="Red" />            
             </Storyboard> 
            </VisualState> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
         </sdk:DataGrid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

有人可以告訴我這裏發生了什麼事嗎? tbh我真的不明白視覺狀態是如何工作的,只是在黑暗中拍攝而已。

感謝

回答

2

檢查爲DataGrid(check here)背景色(即藍色)的模板,在模板是硬編碼。當選擇行時,所發生的一切就是矩形變爲可見(不透明度= 1)。不幸的是,必須說,你必須重新模板整個DataGridRow ...在提供的鏈接,你會發現你可能需要這一切。

在模板中找一些像這樣的代碼: <Rectangle x:Name="BackgroundRectangle" Grid.RowSpan="2" Grid.ColumnSpan="2" Opacity="0" Fill="#FFBADDE9"/>

+0

這種聯繫是非常有用的。我拿了datagridrow的整個控件模板,並改變了與正常選擇狀態相關的部分,它似乎工作正常。謝謝。 – user642770 2011-06-15 07:59:31

+0

非常歡迎:o) – NestorArturo 2011-06-15 12:28:30