FDSforCU
FDSforCU copied to clipboard
Fluent Design System for Creators Update(FDS4CU)是一个UWP的资源库,将Windows10 Fall Creators Update(10.0;版本16299)SDK中的部分效果(Acrylic和Reveal)移植到Windows10 15063中。 目前支持全部的Acrylic笔刷...
Fluent Design System for Creators Update V0.2
Fluent Design System for Creators Update(FDS4CU)是一个UWP的资源库,将Windows10 Fall Creators Update(10.0;版本16299)SDK中的部分效果(Acrylic和Reveal)移植到Windows10 15063中。
目前支持全部的Acrylic笔刷和Button,ToggleButton,RepeatButton,SemanticZoom,AutoSuggestBox,ComboBox,ListView和GridView的Reveal效果。
Acrylic笔刷如下(详细参数可见/ResourceDictionarys/ThemeResources.xaml):
SystemControlAcrylicWindowBrush
SystemControlAcrylicElementBrush
SystemControlAccentAcrylicWindowAccentMediumHighBrush
SystemControlAccentAcrylicElementAccentMediumHighBrush
SystemControlAccentDark1AcrylicWindowAccentDark1Brush
SystemControlAccentDark1AcrylicElementAccentDark1Brush
SystemControlAccentDark2AcrylicWindowAccentDark2MediumHighBrush
SystemControlAccentDark2AcrylicElementAccentDark2MediumHighBrush
SystemControlAcrylicWindowMediumHighBrush
SystemControlAcrylicElementMediumHighBrush
SystemControlAcrylicWindowMediumBrush
SystemControlAcrylicElementMediumBrush
SystemControlChromeMediumLowAcrylicWindowMediumBrush
SystemControlChromeMediumLowAcrylicElementMediumBrush
SystemControlBaseHighAcrylicWindowBrush
SystemControlBaseHighAcrylicElementBrush
SystemControlBaseHighAcrylicWindowMediumHighBrush
SystemControlBaseHighAcrylicElementMediumHighBrush
SystemControlBaseHighAcrylicWindowMediumBrush
SystemControlBaseHighAcrylicElementMediumBrush
SystemControlChromeLowAcrylicWindowBrush
SystemControlChromeLowAcrylicElementBrush
SystemControlChromeMediumAcrylicWindowMediumBrush
SystemControlChromeMediumAcrylicElementMediumBrush
SystemControlChromeHighAcrylicWindowMediumBrush
SystemControlChromeHighAcrylicElementMediumBrush
SystemControlBaseLowAcrylicWindowBrush
SystemControlBaseLowAcrylicElementBrush
SystemControlBaseMediumLowAcrylicWindowMediumBrush
SystemControlBaseMediumLowAcrylicElementMediumBrush
SystemControlAltLowAcrylicWindowBrush
SystemControlAltLowAcrylicElementBrush
SystemControlAltMediumLowAcrylicWindowMediumBrush
SystemControlAltMediumLowAcrylicElementMediumBrush
SystemControlAltHighAcrylicWindowBrush
SystemControlAltHighAcrylicElementBrush
开启Acrylic的方法如下:
在App.xaml中添加:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="FluentDesignSystem/ResourceDictionarys/Styles.xaml" />
<ResourceDictionary Source="FluentDesignSystem/ResourceDictionarys/ThemeResources.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
引入相关资源字典即可使用所有笔刷。
Reveal样式如下(详细参数可见/ResourceDictionarys/Styles.xaml,AutoSuggestBox,ComboBox,ListView和GridView不需多做处理,其他需要设置Style="...RevealStyle"):
ButtonRevealStyle
RepeatButtonRevealStyle
ToggleButtonRevealStyle
SemanticZoomRevealStyle
AutoSuggestBoxRevealStyle
ComboBoxItemRevealStyle
ListViewItemRevealStyle
GridViewItemRevealStyle
自定义控件开启Reveal方式如下:
首先同上引入资源字典,然后编辑UserControl的VisualState:
<UserControl
...
xmlns:fdsh="using:FluentDesignSystem.Helper">
<Grid fdsh.RevealBrushHelper.State="Normal">
<VisualStateManager.VisualStateManager>
<VisualStateGroup x:Name="CommonStates">
VisualState x:Name="Normal" />
<VisualState x:Name="PointerOver">
<VisualState.Setters>
<Setter Target="RootGrid.(fdsh:RevealBrushHelper.State)" Value="PointerOver" />
<Setter Target="RootGrid.Background" Value="{ThemeResource ButtonRevealBackgroundPointerOver}"
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ButtonRevealBorderBrushPointerOver}"
<Setter Target="ContentPresenter.Foreground"
Value="{ThemeResource ButtonForegroundPointerOver}"
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Pressed">
<VisualState.Setters>
<Setter Target="RootGrid.(fdsh:RevealBrushHelper.State)" Value="Pressed" />
<Setter Target="RootGrid.Background" Value="{ThemeResource ButtonRevealBackgroundPressed}"
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ButtonRevealBorderBrushPressed}"
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource ButtonForegroundPressed}"
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroup>
...
</Grid>
</UserControl>
然后在后台代码中处理VisualState状态转换。
由于SDK接口的局限性,还有一些实现上的问题,Acrylic和Reveal表现并不是太稳定,欢迎大家Fork和反馈。
By:叫我蓝火火
Blog:叫我蓝火火
微博:Blue_Fire蓝火