1. 程式人生 > 實用技巧 >DevExpress WPF使用指南 - 如何保留選定行樣式

DevExpress WPF使用指南 - 如何保留選定行樣式

下載DevExpress v20.2完整版

DevExpress WPFSubscription(曾命名DevExpress WPF Controls)擁有120+個控制元件和庫,將幫助您交付滿足甚至超出企業需求的高效能業務應用程式。通過DevExpress WPF能建立有著強大互動功能的XAML基礎應用程式,這些應用程式專注於當代客戶的需求和構建未來新一代支援觸控的解決方案。 無論是Office辦公軟體的衍伸產品,還是以資料為中心的商業智慧產品,都能通過DevExpress WPF控制元件來實現。

問題

已經在GridControl中更改了選定的行背景、前景和fontweight,效果很好。 但是當GridControl失去焦點時,選定的行樣式也會更改,如何防止或者覆蓋?

XAML

<dxg:GridControl.View>
<dxg:TableView x:Name="productionElementsView" UseLightweightTemplates="None" MultiSelectMode="Row" NavigationStyle="Row" ShowGroupPanel="True" FilterEditorCreated="TableView_FilterEditorCreated" PreviewMouseLeftButtonDown="productionElementsView_PreviewMouseLeftButtonDown" >
<dxg:TableView.RowStyle>
<Style TargetType="{x:Type dxg:GridRowContent}" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=RowStyle, IsThemeIndependent=True}}">
<Setter Property="Background" Value="{Binding Path=Row, Converter={StaticResource ResourceKey=ItemTypeBackgroundColor}}" />
<Setter Property="Foreground" Value="{Binding Path=Row, Converter={StaticResource ResourceKey=ItemTypeForegroundColor}}" />
<Setter Property="FontWeight" Value="Regular" />
<Style.Triggers>
<Trigger Property="dxg:DataViewBase.IsFocusedRow" Value="True">
<Setter Property="Background" Value="#FFFFDC00" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontWeight" Value="SemiBold" />

</Trigger>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="Background" Value="#FFFFDC00" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontWeight" Value="SemiBold" />
</DataTrigger>
</Style.Triggers>
</Style>
</dxg:TableView.RowStyle>
</dxg:TableView>
</dxg:GridControl.View>

解決方案

您可以將TableView的FadeSelectionOnLostFocus設定為false,以對焦點/選定行使用相同的顏色。

要為這種情況定義顏色,可以使用TableView的RowStyle屬性併為RowControl的FadeSelection屬性建立觸發器:

XAML

<dxg:TableView.RowStyle>
<Style TargetType="dxg:RowControl">
<Style.Triggers>
<Trigger Property="FadeSelection" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</dxg:TableView.RowStyle>


上DevExpress中文網,獲取第一手最新產品資訊!

DevExpress技術交流群3:700924826歡迎一起進群討論