markus / KCOM / Resources / WindowStyle.xaml @ d21e9c15
이력 | 보기 | 이력해설 | 다운로드 (15.5 KB)
1 | d33ef543 | taeseongkim | <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
---|---|---|---|
2 | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||
3 | x:Class="KCOM.Controls.CustomizedWindow.VS2012WindowStyle" |
||
4 | 68302e9d | taeseongkim | xmlns:cWin="clr-namespace:KCOM.Controls.CustomizedWindow" |
5 | d33ef543 | taeseongkim | xmlns:local="clr-namespace:KCOM.Controls"> |
6 | |||
7 | <SolidColorBrush x:Key="TitleBarBackgroundBrush" Color="#FF2A579A" /> |
||
8 | <SolidColorBrush x:Key="VS2012WindowBorderBrush" Color="#007ACC" /> |
||
9 | <SolidColorBrush x:Key="VS2012WindowBorderBrushInactive" Color="#999999" /> |
||
10 | <SolidColorBrush x:Key="VS2012WindowStatusForeground" Color="#FFFFFF" /> |
||
11 | <SolidColorBrush x:Key="VS2012WindowStatusForegroundInactive" Color="#FFFFFF" /> |
||
12 | 40a810fc | taeseongkim | <Visibility x:Key="GripVisible">Visible</Visibility> |
13 | d33ef543 | taeseongkim | <Style x:Key="VS2012WindowStyleTitleBarButton" TargetType="{x:Type Button}"> |
14 | <Setter Property="Focusable" Value="false" /> |
||
15 | <Setter Property="Foreground" Value="White"/> |
||
16 | <Setter Property="Template"> |
||
17 | <Setter.Value>
|
||
18 | <ControlTemplate TargetType="{x:Type Button}"> |
||
19 | <Grid>
|
||
20 | <Border
|
||
21 | x:Name="PART_border" |
||
22 | Background="Transparent" |
||
23 | />
|
||
24 | <ContentPresenter /> |
||
25 | </Grid>
|
||
26 | <ControlTemplate.Triggers>
|
||
27 | <Trigger Property="IsMouseOver" Value="True"> |
||
28 | <Setter TargetName="PART_border" Property="Background" Value="#FFF" /> |
||
29 | <Setter TargetName="PART_border" Property="Opacity" Value="0.7" /> |
||
30 | </Trigger>
|
||
31 | <Trigger Property="IsPressed" Value="True"> |
||
32 | <Setter TargetName="PART_border" Property="Background" Value="{StaticResource VS2012WindowBorderBrush}"/> |
||
33 | <Setter TargetName="PART_border" Property="Opacity" Value="1" /> |
||
34 | <Setter Property="Foreground" Value="#FFF"/> |
||
35 | </Trigger>
|
||
36 | </ControlTemplate.Triggers>
|
||
37 | </ControlTemplate>
|
||
38 | </Setter.Value>
|
||
39 | </Setter>
|
||
40 | </Style>
|
||
41 | |||
42 | 68302e9d | taeseongkim | <Style x:Key="VS2012WindowStyle" TargetType="{x:Type cWin:CustomWindow}"> |
43 | d33ef543 | taeseongkim | <Setter Property="AllowsTransparency" Value="true" /> |
44 | <Setter Property="WindowStyle" Value="None" /> |
||
45 | <Setter Property="Background" Value="Transparent" /> |
||
46 | <Setter Property="ResizeMode" Value="CanResizeWithGrip" /> |
||
47 | <Setter Property="Foreground" Value="White"/> |
||
48 | <Setter Property="Template"> |
||
49 | <Setter.Value>
|
||
50 | 68302e9d | taeseongkim | <ControlTemplate TargetType="{x:Type cWin:CustomWindow}"> |
51 | d33ef543 | taeseongkim | <!--
|
52 | 7 is a magic number. By default Windows fits a maximized window with Margin
|
||
53 | 7 7 7 7 to fill entire screen (WPF .Net 4.5). Larger numbers produce a gap
|
||
54 | between maximized window and screen edges; smaller numbers show parts of
|
||
55 | the window outside of the current monitor on multi-display computers.
|
||
56 | -->
|
||
57 | <Grid
|
||
58 | 68302e9d | taeseongkim | TextOptions.TextRenderingMode="Auto" TextOptions.TextFormattingMode="Ideal"> |
59 | d33ef543 | taeseongkim | <Border
|
60 | x:Name="PART_Border" |
||
61 | Width="Auto" |
||
62 | Height="Auto" |
||
63 | 68302e9d | taeseongkim | Background="#1B1811" |
64 | BorderBrush="#FF1D2D44" |
||
65 | d33ef543 | taeseongkim | BorderThickness="1" |
66 | Padding="0"> |
||
67 | 68302e9d | taeseongkim | <Border BorderThickness="2" BorderBrush="#FF293C57"> |
68 | <DockPanel
|
||
69 | d33ef543 | taeseongkim | HorizontalAlignment="Stretch" |
70 | Background="Transparent" |
||
71 | VerticalAlignment="Stretch" |
||
72 | >
|
||
73 | <Border
|
||
74 | x:Name="TitleBar" |
||
75 | DockPanel.Dock="Top" |
||
76 | Background="{StaticResource TitleBarBackgroundBrush}" |
||
77 | BorderThickness="0" |
||
78 | MouseLeftButtonDown="TitleBarMouseLeftButtonDown" |
||
79 | MouseMove="TitleBarMouseMove" |
||
80 | >
|
||
81 | <Grid Height="32"> |
||
82 | <Grid.ColumnDefinitions>
|
||
83 | <ColumnDefinition Width="36"/> |
||
84 | <ColumnDefinition /> |
||
85 | <ColumnDefinition Width="34"/> |
||
86 | <ColumnDefinition Width="34"/> |
||
87 | <ColumnDefinition Width="34"/> |
||
88 | </Grid.ColumnDefinitions>
|
||
89 | <Image
|
||
90 | x:Name="Icon" |
||
91 | Grid.Column="0" |
||
92 | Source="{Binding Path=Icon, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" |
||
93 | HorizontalAlignment="Right" |
||
94 | Margin="4,-7,0,7" |
||
95 | Width="32" |
||
96 | Height="32" |
||
97 | MouseLeftButtonDown="IconMouseLeftButtonDown" |
||
98 | />
|
||
99 | <TextBlock
|
||
100 | x:Name="Caption" |
||
101 | Grid.Column="1" |
||
102 | HorizontalAlignment="Center" |
||
103 | VerticalAlignment="Center" |
||
104 | Margin="4,0,0,0" |
||
105 | FontFamily="Segoe UI" |
||
106 | FontSize="12" |
||
107 | FontWeight="Bold" |
||
108 | Foreground="White" |
||
109 | Opacity="0.66" |
||
110 | Text="{Binding Path=Title, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" |
||
111 | />
|
||
112 | <Button
|
||
113 | x:Name="MinButton" |
||
114 | Grid.Column="2" |
||
115 | VerticalAlignment="Top" |
||
116 | Width="34" |
||
117 | Height="26" |
||
118 | Style="{StaticResource VS2012WindowStyleTitleBarButton}" |
||
119 | Click="MinButtonClick" |
||
120 | >
|
||
121 | <Grid MaxHeight="9" MaxWidth="9"> |
||
122 | <Path
|
||
123 | Stroke="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}" |
||
124 | StrokeThickness="1" |
||
125 | Stretch="None" |
||
126 | RenderOptions.EdgeMode="Aliased" |
||
127 | Data="M0,8 H8 M0,7 H8 M0,6 H8" |
||
128 | />
|
||
129 | </Grid>
|
||
130 | </Button>
|
||
131 | <Button
|
||
132 | Grid.Column="3" |
||
133 | x:Name="MaxButton" |
||
134 | VerticalAlignment="Top" |
||
135 | Width="34" |
||
136 | Height="26" |
||
137 | Style="{StaticResource VS2012WindowStyleTitleBarButton}" |
||
138 | Click="MaxButtonClick" |
||
139 | >
|
||
140 | <Grid MaxHeight="9" MaxWidth="9"> |
||
141 | <Path
|
||
142 | x:Name="PART_MaxButton_Path" |
||
143 | Stroke="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}" |
||
144 | StrokeThickness="1" |
||
145 | Stretch="None" |
||
146 | RenderOptions.EdgeMode="Aliased" |
||
147 | Data="M0,0 H8 V8 H0 V0 M0,1 H8 M0,2 H8" |
||
148 | />
|
||
149 | </Grid>
|
||
150 | </Button>
|
||
151 | <Button
|
||
152 | Grid.Column="4" |
||
153 | x:Name="CloseButton" |
||
154 | VerticalAlignment="Top" |
||
155 | Width="34" |
||
156 | Height="26" |
||
157 | Style="{StaticResource VS2012WindowStyleTitleBarButton}" |
||
158 | Click="CloseButtonClick" |
||
159 | >
|
||
160 | <Grid MaxHeight="9" MaxWidth="9"> |
||
161 | <Path
|
||
162 | Stroke="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}" |
||
163 | StrokeThickness="1.5" |
||
164 | Stretch="None" |
||
165 | Data="M0,0 L8,8 M0,8 L8,0" |
||
166 | />
|
||
167 | </Grid>
|
||
168 | </Button>
|
||
169 | </Grid>
|
||
170 | </Border>
|
||
171 | <ContentPresenter /> |
||
172 | </DockPanel>
|
||
173 | 68302e9d | taeseongkim | </Border>
|
174 | d33ef543 | taeseongkim | </Border>
|
175 | <Line
|
||
176 | MouseDown="OnSizeNorth" |
||
177 | x:Name="lnSizeNorth" |
||
178 | Stroke="Transparent" |
||
179 | Cursor="SizeNS" |
||
180 | X1="1" X2="{TemplateBinding ActualWidth}" Y1="1" Y2="1" |
||
181 | 68302e9d | taeseongkim | StrokeThickness="4" |
182 | d33ef543 | taeseongkim | />
|
183 | <Line
|
||
184 | MouseDown="OnSizeSouth" |
||
185 | x:Name="lnSizeSouth" |
||
186 | Stroke="Transparent" |
||
187 | VerticalAlignment="Bottom" |
||
188 | Cursor="SizeNS" |
||
189 | X1="1" X2="{TemplateBinding ActualWidth}" Y1="{TemplateBinding ActualHeight}" Y2="{TemplateBinding ActualHeight}" |
||
190 | 68302e9d | taeseongkim | StrokeThickness="4" |
191 | d33ef543 | taeseongkim | />
|
192 | <Line
|
||
193 | MouseDown="OnSizeWest" |
||
194 | x:Name="lnSizeWest" |
||
195 | Stroke="Transparent" |
||
196 | Cursor="SizeWE" |
||
197 | X1="1" X2="1" Y1="1" Y2="{TemplateBinding ActualHeight}" |
||
198 | 68302e9d | taeseongkim | StrokeThickness="4" |
199 | d33ef543 | taeseongkim | />
|
200 | <Line
|
||
201 | MouseDown="OnSizeEast" |
||
202 | x:Name="lnSizeEast" |
||
203 | Stroke="Transparent" |
||
204 | HorizontalAlignment="Right" |
||
205 | 40a810fc | taeseongkim | Cursor="SizeWE" |
206 | d33ef543 | taeseongkim | X1="{TemplateBinding ActualWidth}" X2="{TemplateBinding ActualWidth}" Y1="1" Y2="{TemplateBinding ActualHeight}" |
207 | 68302e9d | taeseongkim | StrokeThickness="4" |
208 | d33ef543 | taeseongkim | />
|
209 | <Rectangle MouseDown="OnSizeNorthWest" x:Name="rectSizeNorthWest" Cursor="SizeNWSE" Fill="Transparent" Width="5" Height="5" VerticalAlignment="Top" HorizontalAlignment="Left" /> |
||
210 | <Rectangle MouseDown="OnSizeNorthEast" x:Name="rectSizeNorthEast" Cursor="SizeNESW" Fill="Transparent" Width="5" Height="5" VerticalAlignment="Top" HorizontalAlignment="Right" /> |
||
211 | <Rectangle MouseDown="OnSizeSouthWest" x:Name="rectSizeSouthWest" Cursor="SizeNESW" Fill="Transparent" Width="5" Height="5" VerticalAlignment="Bottom" HorizontalAlignment="Left" /> |
||
212 | <Rectangle MouseDown="OnSizeSouthEast" x:Name="rectSizeSouthEast" Cursor="SizeNWSE" Fill="Transparent" Width="5" Height="5" VerticalAlignment="Bottom" HorizontalAlignment="Right" /> |
||
213 | </Grid>
|
||
214 | <ControlTemplate.Triggers>
|
||
215 | 68302e9d | taeseongkim | <Trigger Property="CustomState" Value="Maximized"> |
216 | d33ef543 | taeseongkim | <Setter TargetName="PART_MaxButton_Path" Property="Data" Value="M0,3 H5 V8 H0 V3 M0,4 H5 M3,0 H8 V5 H7 M3,1 H8"/> |
217 | 68302e9d | taeseongkim | <Setter TargetName="lnSizeNorth" Property="Visibility" Value="Hidden"/> |
218 | <Setter TargetName="lnSizeSouth" Property="Visibility" Value="Hidden"/> |
||
219 | <Setter TargetName="lnSizeWest" Property="Visibility" Value="Hidden"/> |
||
220 | <Setter TargetName="lnSizeEast" Property="Visibility" Value="Hidden"/> |
||
221 | <Setter TargetName="rectSizeNorthWest" Property="Visibility" Value="Hidden"/> |
||
222 | <Setter TargetName="rectSizeNorthEast" Property="Visibility" Value="Hidden"/> |
||
223 | <Setter TargetName="rectSizeSouthWest" Property="Visibility" Value="Hidden"/> |
||
224 | <Setter TargetName="rectSizeSouthEast" Property="Visibility" Value="Hidden"/> |
||
225 | d33ef543 | taeseongkim | </Trigger>
|
226 | <Trigger Property="IsActive" Value="False"> |
||
227 | 68302e9d | taeseongkim | <Setter TargetName="PART_Border" Property="BorderBrush" Value="#54626F"/> |
228 | d33ef543 | taeseongkim | </Trigger>
|
229 | </ControlTemplate.Triggers>
|
||
230 | </ControlTemplate>
|
||
231 | </Setter.Value>
|
||
232 | </Setter>
|
||
233 | <Style.Resources>
|
||
234 | <Style TargetType="{x:Type StatusBar}"> |
||
235 | <Style.Triggers>
|
||
236 | <DataTrigger Binding="{Binding IsActive, RelativeSource={RelativeSource AncestorType=Window}}" Value="True"> |
||
237 | <Setter Property="Foreground" Value="{StaticResource VS2012WindowStatusForeground}" /> |
||
238 | <Setter Property="Background" Value="{StaticResource VS2012WindowBorderBrush}" /> |
||
239 | </DataTrigger>
|
||
240 | <DataTrigger Binding="{Binding IsActive, RelativeSource={RelativeSource AncestorType=Window}}" Value="False"> |
||
241 | <Setter Property="Foreground" Value="{StaticResource VS2012WindowStatusForegroundInactive}" /> |
||
242 | <Setter Property="Background" Value="{StaticResource VS2012WindowBorderBrushInactive}" /> |
||
243 | </DataTrigger>
|
||
244 | </Style.Triggers>
|
||
245 | </Style>
|
||
246 | </Style.Resources>
|
||
247 | </Style>
|
||
248 | </ResourceDictionary> |