DevExpress WPF使用技巧教程:WPF外觀自定義
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
通過DevExpress WPF Controls,您能創(chuàng)建有著強(qiáng)大互動(dòng)功能的XAML基礎(chǔ)應(yīng)用程序,這些應(yīng)用程序?qū)W⒂诋?dāng)代客戶的需求和構(gòu)建未來新一代支持觸摸的解決方案。
v20.1版本包含外觀屬性的擴(kuò)展列表,這篇文章將為大家介紹外觀定制的增強(qiáng)功能,您現(xiàn)在可以將它們集成到基于DevExpress-powered WPF應(yīng)用程序中。
DateNavigator控件
現(xiàn)在,您可以為以下單元狀態(tài)指定單元外觀:
- MouseOverState
- DisabledState
- InactiveState
- FocusedState
- SelectedState
- TodayState
- SpecialDateState
- HolidayState
- NormalState
下面的代碼示例指定一個(gè)特殊的日期前景,并禁用當(dāng)前日期的突出顯示:
<dxe:DateNavigator> <dxe:DateNavigator.Appearance> <dxe:DateNavigatorCellAppearance> <dxe:DateNavigatorCellAppearance.SpecialDateState> <dxe:DateNavigatorStateAppearance Foreground="#FF7200" BorderThickness="0"/> </dxe:DateNavigatorCellAppearance.SpecialDateState> <dxe:DateNavigatorCellAppearance.TodayState> <dxe:DateNavigatorStateAppearance BorderBrush="White"/> </dxe:DateNavigatorCellAppearance.TodayState> </dxe:DateNavigatorCellAppearance> </dxe:DateNavigator.Appearance> </dxe:DateNavigator>

支持標(biāo)準(zhǔn)屬性
v20.1擴(kuò)展了支持以下標(biāo)準(zhǔn)自定義屬性的控件列表:
- Background / Foreground
- BorderBrush
- BorderThickness
- CornerRadius
- Margin / Padding
最近的主題(Office 2016 SE,Office 2019,VS 2017,VS 2019)現(xiàn)在為以下控件提供增強(qiáng)的模板:
- Ribbon項(xiàng)目、頁面、類別和組
- 工具欄和工具欄項(xiàng)
- 上下文菜單和上下文菜單項(xiàng)
- SimpleButton,DropDownButton和SplitButton
受支持的外觀設(shè)置使您可以在整個(gè)應(yīng)用程序中快速自定義外觀,或創(chuàng)建與眾不同的單獨(dú)UI元素。 例如,下面的代碼段創(chuàng)建了一個(gè)橙色的操作按鈕,您的用戶將不會(huì)錯(cuò)過。
<dx:SimpleButton Content="Simple button" Background="#FF7200" Foreground="White" Padding="10" CornerRadius="5" BorderBrush="#505050" BorderThickness="3" …/>

Bar Triggers
DevExpress Ribbon中使用的工具欄項(xiàng)和工具欄是非可視化元素,它們在UI中生成可視副本,同一項(xiàng)目可以同時(shí)顯示在多個(gè)位置。例如,下面的圖像在功能區(qū)頁面和快速訪問工具欄區(qū)域中顯示相同的項(xiàng)目:

由于工具欄項(xiàng)是非可視化元素,因此很難使用常規(guī)WPF觸發(fā)器自定義關(guān)聯(lián)的可視化狀態(tài)。在v20.1中,我們?yōu)楣ぞ邫陧?xiàng)目引入自定義觸發(fā)器,這些觸發(fā)器提供與常規(guī)WPF觸發(fā)器相同的功能,但可以直接為工具欄項(xiàng)定義。
以下是根據(jù)檢查狀態(tài)來自定義BarCheckItems外觀的方法:
<dxb:BarCheckItem Content="Private" …> <dxb:BarCheckItem.Triggers> <dxb:ItemTrigger Property="IsChecked" Value="True"> <dxb:ItemSetter Property="Background" Value="#ffeb3b"/> </dxb:ItemTrigger> </dxb:BarCheckItem.Triggers> </dxb:BarCheckItem> <dxb:BarCheckItem Content="High Importance" …> <dxb:BarCheckItem.Triggers> <dxb:ItemTrigger Property="IsChecked" Value="True"> <dxb:ItemSetter Property="Background" Value="#d20f38"/> <dxb:ItemSetter Property="Foreground" Value="White"/> </dxb:ItemTrigger> </dxb:BarCheckItem.Triggers> </dxb:BarCheckItem>

DevExpress技術(shù)交流群2:775869749 歡迎一起進(jìn)群討論