WindowStyle.xaml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <ResourceDictionary
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:sv="clr-namespace:YSAI.Window">
  5. <!--窗体样式-->
  6. <Style x:Key="StyleBase" TargetType="{x:Type sv:WindowBase}" BasedOn="{StaticResource {x:Type Window}}">
  7. <Setter Property="Window.WindowStyle" Value="None"/>
  8. <Setter Property="AllowsTransparency" Value="True"/>
  9. <Setter Property="MinHeight" Value="200"/>
  10. <Setter Property="MinWidth" Value="200"/>
  11. <Setter Property="IsTabStop" Value="False" />
  12. <Setter Property="TextOptions.TextFormattingMode" Value="Display" />
  13. <Setter Property="FontFamily" Value="{DynamicResource AllFontFamily}"/>
  14. <Setter Property="WindowChrome.WindowChrome">
  15. <Setter.Value>
  16. <WindowChrome CornerRadius="{DynamicResource WindowCornerRadius}" CaptionHeight="{DynamicResource TitleHeight}" GlassFrameThickness="0" ResizeBorderThickness="10" UseAeroCaptionButtons="False" NonClientFrameEdges="None"/>
  17. </Setter.Value>
  18. </Setter>
  19. <Setter Property="Template">
  20. <Setter.Value>
  21. <ControlTemplate TargetType="{x:Type sv:WindowBase}" >
  22. <Border CornerRadius="{DynamicResource WindowCornerRadius}" Background="{DynamicResource WindowContentBackground}" Name="WindowFrame">
  23. <Border.Effect >
  24. <DropShadowEffect BlurRadius="7" ShadowDepth="0.5" Opacity="0.5"/>
  25. </Border.Effect>
  26. <Grid Background="Transparent">
  27. <Grid.RowDefinitions>
  28. <RowDefinition Height="auto"/>
  29. <RowDefinition/>
  30. <RowDefinition Height="auto"/>
  31. </Grid.RowDefinitions>
  32. <!--标题-->
  33. <Border Height="{DynamicResource TitleHeight}" Name="PART_Caption" Grid.Row="0" CornerRadius="{DynamicResource TopCornerRadius}" Background="{DynamicResource CaptionActiveBackgroundBrush}">
  34. <Border.Effect>
  35. <DropShadowEffect BlurRadius="{DynamicResource Title.DropShadowEffect.BlurRadius}" ShadowDepth="{DynamicResource Title.DropShadowEffect.ShadowDepth}" Opacity="{DynamicResource Title.DropShadowEffect.Opacity}" />
  36. </Border.Effect>
  37. <!--标题-->
  38. <Grid>
  39. <Grid.ColumnDefinitions>
  40. <ColumnDefinition Width="auto"/>
  41. <ColumnDefinition/>
  42. <ColumnDefinition Width="auto"/>
  43. <ColumnDefinition Width="auto"/>
  44. <ColumnDefinition Width="auto"/>
  45. <ColumnDefinition Width="auto"/>
  46. <ColumnDefinition Width="auto"/>
  47. </Grid.ColumnDefinitions>
  48. <!--LOGO-->
  49. <Image Grid.Column="0" Source="{Binding Path=Icon, RelativeSource={RelativeSource TemplatedParent}}" Margin="{DynamicResource LogoImageMargin}" Name="PART_Icon"/>
  50. <!--标题-->
  51. <Label Name="CaptionText" Grid.Column="1" Content="{Binding Path=Title, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center" HorizontalAlignment="{DynamicResource TitleHorizontalAlignment}" Foreground="{DynamicResource TitleForeground}" FontWeight="{DynamicResource TitleFontWeight}" FontSize="{DynamicResource TitleFontSize}" />
  52. <!--语言-->
  53. <Button Grid.Column="2" BorderThickness="0" Template="{DynamicResource LanguageCaptionButtonStyle}" Width="30" Name="PART_LanguageButton" WindowChrome.IsHitTestVisibleInChrome="True">
  54. <StackPanel Orientation="Horizontal">
  55. <Image Source="{DynamicResource Language}" Width="{DynamicResource LanguageImageWidth}" Stretch="Uniform"/>
  56. </StackPanel>
  57. </Button>
  58. <!--皮肤-->
  59. <Button Grid.Column="3" BorderThickness="0" Template="{DynamicResource SkinCaptionButtonStyle}" Width="30" Height="auto" Name="PART_SkinButton" WindowChrome.IsHitTestVisibleInChrome="True">
  60. <StackPanel Orientation="Horizontal">
  61. <Image Source="{DynamicResource Skin}" Width="{DynamicResource SkinImageWidth}" Stretch="Uniform" />
  62. </StackPanel>
  63. </Button>
  64. <!--最小化-->
  65. <Button Grid.Column="4" BorderThickness="0" Template="{DynamicResource MinCaptionButtonStyle}" Name="PART_MinimizeButton" Height="auto" Width="40" WindowChrome.IsHitTestVisibleInChrome="True">
  66. <StackPanel Orientation="Horizontal">
  67. <Image Source="{DynamicResource Min}" Width="{DynamicResource MinimizeImageWidth}" Stretch="Uniform"/>
  68. </StackPanel>
  69. </Button>
  70. <!--原始-->
  71. <Button Grid.Column="5" BorderThickness="0" Template="{DynamicResource NormalCaptionButtonStyle}" Name="PART_NormalButton" Height="auto" Width="40" WindowChrome.IsHitTestVisibleInChrome="True">
  72. <StackPanel Orientation="Horizontal" >
  73. <Image Source="{DynamicResource Normal}" Width="{DynamicResource NormalImageWidth}" Stretch="Uniform"/>
  74. </StackPanel>
  75. </Button>
  76. <!--最大化-->
  77. <Button Grid.Column="5" BorderThickness="0" Template="{DynamicResource MaxCaptionButtonStyle}" Name="PART_MaximizeButton" Height="auto" Width="40" WindowChrome.IsHitTestVisibleInChrome="True">
  78. <StackPanel Orientation="Horizontal" >
  79. <Image Source="{DynamicResource Max}" Width="{DynamicResource MaximizeImageWidth}" Stretch="Uniform"/>
  80. </StackPanel>
  81. </Button>
  82. <!--关闭-->
  83. <Button Grid.Column="6" Background="{x:Null}" BorderThickness="0" Template="{DynamicResource CloseCaptionButtonStyle}" Name="PART_CloseButton" Height="auto" Width="40" WindowChrome.IsHitTestVisibleInChrome="True">
  84. <StackPanel Orientation="Horizontal">
  85. <Image Source="{DynamicResource Close}" Width="{DynamicResource CloseImageWidth}" Stretch="Uniform"/>
  86. </StackPanel>
  87. </Button>
  88. <!--窗体移动工具-->
  89. <Border Name="WindowMoveGripper" CornerRadius="{DynamicResource TopCornerRadius}" Grid.Column="0" Grid.ColumnSpan="2" Margin="3,3,0,0">
  90. <Rectangle IsHitTestVisible="False" Focusable="False" Fill="Transparent"/>
  91. </Border>
  92. </Grid>
  93. </Border>
  94. <!--内容-->
  95. <AdornerDecorator KeyboardNavigation.IsTabStop="False" Grid.Row="1">
  96. <Border Name="PART_ClientArea">
  97. <ContentPresenter KeyboardNavigation.TabNavigation="Cycle" Content="{TemplateBinding Content}" />
  98. </Border>
  99. </AdornerDecorator>
  100. <!--版本-->
  101. <Border Grid.Row="2" Height="{DynamicResource VerHeight}" VerticalAlignment="Bottom" CornerRadius="{DynamicResource DownCornerRadius}" Background="{DynamicResource VerBackgroundBrush}" Name="PART_Ver">
  102. <Border.Effect>
  103. <DropShadowEffect BlurRadius="{DynamicResource Ver.DropShadowEffect.BlurRadius}" ShadowDepth="{DynamicResource Ver.DropShadowEffect.ShadowDepth}" Opacity="{DynamicResource Ver.DropShadowEffect.Opacity}" />
  104. </Border.Effect>
  105. <Grid>
  106. <Grid.ColumnDefinitions>
  107. <ColumnDefinition Width="auto"/>
  108. <ColumnDefinition Width="auto"/>
  109. <ColumnDefinition Width="auto"/>
  110. </Grid.ColumnDefinitions>
  111. <Image Grid.Column="0" Source="{DynamicResource Ver}" Margin="{DynamicResource VerImageMargin}" />
  112. <Label Grid.Column="1" Content="{DynamicResource VerContent}" Margin="{DynamicResource VerMargin}" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="{DynamicResource VerFontWeight}" Foreground="{DynamicResource VerForeground}" FontSize="{DynamicResource VerFontSize}"/>
  113. <Label Grid.Column="2" Name="System_Ver" Margin="{DynamicResource VerCodeMargin}" VerticalAlignment="Center" FontWeight="{DynamicResource VerCodeFontWeight}" Foreground="{DynamicResource VerCodeForeground}" FontSize="{DynamicResource VerCodeFontSize}"/>
  114. </Grid>
  115. </Border>
  116. </Grid>
  117. </Border>
  118. <!--控件模板触发器-->
  119. <ControlTemplate.Triggers>
  120. <Trigger Property="ResizeMode" Value="NoResize">
  121. <Setter Property="Visibility" TargetName="PART_MinimizeButton" Value="Collapsed" />
  122. <Setter Property="Visibility" TargetName="PART_MaximizeButton" Value="Collapsed" />
  123. <Setter Property="Visibility" TargetName="PART_NormalButton" Value="Collapsed" />
  124. </Trigger>
  125. <Trigger Property="ResizeMode" Value="CanMinimize">
  126. <Setter Property="Visibility" TargetName="PART_MaximizeButton" Value="Collapsed" />
  127. <Setter Property="Visibility" TargetName="PART_NormalButton" Value="Collapsed" />
  128. </Trigger>
  129. <Trigger Property="WindowState" Value="Maximized">
  130. <Setter Property="CornerRadius" TargetName="WindowFrame" Value="0"/>
  131. <Setter Property="CornerRadius" TargetName="PART_Caption" Value="0"/>
  132. <Setter Property="CornerRadius" TargetName="PART_Ver" Value="0"/>
  133. <Setter TargetName="PART_MaximizeButton" Property="Visibility" Value="Collapsed"/>
  134. </Trigger>
  135. <Trigger Property="WindowState" Value="Normal">
  136. <Setter TargetName="PART_NormalButton" Property="Visibility" Value="Collapsed"/>
  137. </Trigger>
  138. <Trigger Property="Icon" Value="{x:Null}">
  139. <Setter TargetName="PART_Icon" Property="Visibility" Value="Collapsed" />
  140. </Trigger>
  141. </ControlTemplate.Triggers>
  142. </ControlTemplate>
  143. </Setter.Value>
  144. </Setter>
  145. </Style>
  146. </ResourceDictionary>