1
<local:CustomWindow x:Class="Ircsil.MainWindow"
2
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6
xmlns:sys="clr-namespace:System;assembly=mscorlib"
7
xmlns:local="clr-namespace:Ircsil"
9
d:DesignWidth="640" d:DesignHeight="480"
10
MinWidth="240" MinHeight="55"
11
Title="Ircsil" Icon="{StaticResource MainIconImage}"
12
Loaded="Window_Loaded" Unloaded="Window_Unloaded"
13
MouseDoubleClick="Window_MouseDoubleClick">
1
<Window x:Class="Ircsil.MainWindow"
2
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6
xmlns:sys="clr-namespace:System;assembly=mscorlib"
7
xmlns:local="clr-namespace:Ircsil"
9
d:DesignWidth="640" d:DesignHeight="480"
10
Title="Ircsil" Icon="{StaticResource MainIconImage}" Style="{StaticResource WindowStyle}"
11
Loaded="Window_Loaded" Unloaded="Window_Unloaded">
15
<local:CustomWindow.Resources>
16
14
<ResourceDictionary>
18
16
<ResourceDictionary.MergedDictionaries>
19
17
<ResourceDictionary Source="/Skins/Default/MainSkin.xaml"/>
20
18
</ResourceDictionary.MergedDictionaries>
20
<ContextMenu x:Key="headerContextMenu">
21
<MenuItem Name="aboutMenuItem" Header="_About..." Click="aboutMenuItem_Click">
23
<Image Source="{StaticResource InformationImage}"/>
27
<MenuItem Name="closeMenuItem" Header="_Close" Click="closeMenuItem_Click">
29
<Image Source="{StaticResource ApplicationImage}"/>
22
34
</ResourceDictionary>
23
</local:CustomWindow.Resources>
25
<Grid Background="White">
28
<RowDefinition Height="Auto"/>
29
<RowDefinition Height="*"/>
30
<RowDefinition Height="Auto"/>
31
</Grid.RowDefinitions>
33
<Grid.ColumnDefinitions>
34
<ColumnDefinition Width="Auto" MinWidth="80" MaxWidth="10000"/>
35
<ColumnDefinition Width="*" MinWidth="80"/>
36
</Grid.ColumnDefinitions>
38
<Border Name="headerBorder" Padding="12,8,12,8" Background="#FF00A9DA" BorderThickness="0" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
39
MouseLeftButtonDown="headerBorder_MouseLeftButtonDown">
42
<MenuItem Name="aboutMenuItem" Header="_About..." Click="aboutMenuItem_Click">
44
<Image Source="{StaticResource InformationImage}"/>
48
<MenuItem Name="closeMenuItem" Header="_Close" Click="closeMenuItem_Click">
50
<Image Source="{StaticResource ApplicationImage}"/>
39
<Border Style="{StaticResource HeaderStyle}" Margin="0,-4,0,0" DockPanel.Dock="Top">
55
41
<StackPanel Orientation="Vertical">
59
<TextBlock Padding="0" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="#D9D9D9" Text="IRCSIL" FontSize="12" FontWeight="Bold"/>
61
<Button Name="settingsButton" Margin="0,0,60,0" HorizontalAlignment="Right" VerticalAlignment="Center">
63
<ControlTemplate TargetType="Button">
64
<TextBlock Name="textBlock" Margin="4,0,16,0" HorizontalAlignment="Right" VerticalAlignment="Top" Foreground="#D9D9D9" FontSize="10" Text="SETTINGS"/>
65
<ControlTemplate.Triggers>
66
<Trigger Property="IsMouseOver" Value="True">
67
<Setter TargetName="textBlock" Property="Foreground" Value="#BFBFBF"/>
69
</ControlTemplate.Triggers>
74
<StackPanel Name="windowButtonsPanel" HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal">
76
<StackPanel.Resources>
78
<SolidColorBrush x:Key="FigureNormalBrush">White</SolidColorBrush>
79
<SolidColorBrush x:Key="FigureHoverBrush">LightGray</SolidColorBrush>
81
<Style TargetType="Button">
82
<Setter Property="Width" Value="10"/>
83
<Setter Property="Height" Value="10"/>
84
<Setter Property="Margin" Value="4,0,4,0"/>
85
<Setter Property="Foreground" Value="{StaticResource FigureNormalBrush}"/>
87
<Trigger Property="IsMouseOver" Value="True">
88
<Setter Property="Foreground" Value="{StaticResource FigureHoverBrush}"/>
93
<Style x:Key="ButtonPathStyle" TargetType="Path">
94
<Setter Property="VerticalAlignment" Value="Bottom"/>
95
<Setter Property="Stretch" Value="Uniform"/>
96
<Setter Property="Fill" Value="{Binding Foreground, RelativeSource={RelativeSource AncestorType=Button}}"/>
97
<Setter Property="Stroke" Value="{Binding Foreground, RelativeSource={RelativeSource AncestorType=Button}}"/>
100
</StackPanel.Resources>
102
<Button Name="minimizeButton" Click="minimizeButton_Click">
104
<ControlTemplate TargetType="Button">
105
<Border Background="Transparent">
106
<Path Name="figure" Style="{StaticResource ButtonPathStyle}">
108
<PathGeometry Figures="M 0.0,0.8 h 1 v 0.2 h -1 v -0.2"/>
116
<Button Name="maximizeButton" Click="maximizeButton_Click" Visibility="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window},
117
Converter={StaticResource EqualityToVisibilityConverter}, ConverterParameter={x:Static WindowState.Normal}}">
119
<ControlTemplate TargetType="Button">
120
<Border Background="Transparent">
121
<Path Name="figure" Style="{StaticResource ButtonPathStyle}">
123
<PathGeometry Figures="M 0.0,0.0 h 1 v 1 h -1 v -1 M 0.0,0.2 h 1 v 0.8 h -1 v -0.8"/>
131
<Button Name="restoreButton" Click="restoreButton_Click" Visibility="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window},
132
Converter={StaticResource EqualityToVisibilityConverter}, ConverterParameter={x:Static WindowState.Maximized}}">
134
<ControlTemplate TargetType="Button">
135
<Border Background="Transparent">
136
<Path Name="figure" Style="{StaticResource ButtonPathStyle}">
139
<PathGeometry Figures="M 0.0,0.0 h 1 v 1 h -0.4 v -0.6 h -0.6 v -0.4 M 0.0,0.2 h 1 v 0.8 h -0.4 v -0.6 h -0.6 v -0.2">
140
<PathGeometry.Transform>
141
<TranslateTransform X="0.4" Y="-0.4"/>
142
</PathGeometry.Transform>
144
<PathGeometry Figures="M 0.0,0.0 h 1 v 1 h -1 v -1 M 0.0,0.2 h 1 v 0.8 h -1 v -0.8"/>
153
<Button Name="closeButton" Click="closeButton_Click">
155
<ControlTemplate TargetType="Button">
156
<Border Background="Transparent">
157
<Path Name="figure" Style="{StaticResource ButtonPathStyle}">
159
<PathGeometry Figures="M 0.2,0.0 h 0.1 v 0.2 h 0.2 v 0.1 h -0.2 v 0.2 h -0.1 v -0.2 h -0.2 v -0.1 h 0.2 v -0.2">
160
<PathGeometry.Transform>
161
<RotateTransform Angle="45"/>
162
</PathGeometry.Transform>
175
<TextBlock Margin="0,4,0,0" Foreground="White" FontSize="26" Text="##csharp"/>
43
<TextBlock Margin="0,0,0,0" Foreground="White" FontSize="26" Text="##csharp"/>
177
45
<TextBlock Margin="22,0,0,0" Foreground="White" FontSize="14" Opacity="0.8" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis"
178
Text="C# Developer discussions | No Spoonfeeding | Please read http://wiki.freenode-csharp.net/wiki/"/>
46
Text="C# Developer discussions | No Spoonfeeding | Please read http://wiki.freenode-csharp.net/wiki/"/>
183
<ScrollViewer Margin="12,12,6,12" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Auto" BorderThickness="0"
184
Grid.Row="1" Grid.Column="0" Grid.RowSpan="2">
186
<StackPanel Orientation="Vertical">
188
<Expander Header="GimpNet" IsExpanded="True" Style="{StaticResource NetworkExpanderStyle}">
189
<ItemsControl Style="{StaticResource ChannelListItemsControlStyle}">
190
<TextBlock Text="#mono"/>
191
<TextBlock Text="#monodev"/>
195
<Expander Header="Freenode" IsExpanded="True" Style="{StaticResource NetworkExpanderStyle}">
196
<ItemsControl Style="{StaticResource ChannelListItemsControlStyle}">
197
<TextBlock Text="#freenode"/>
198
<TextBlock Text="##csharp"/>
199
<TextBlock Text="##wpf"/>
200
<TextBlock Text="#ircsil"/>
208
<RichTextBox MinHeight="80" Margin="6,12,12,12" IsReadOnly="True" AcceptsReturn="False" IsDocumentEnabled="True" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Visible"
209
Grid.Row="1" Grid.Column="1">
211
<RichTextBox.Resources>
212
<Style TargetType="{x:Type Paragraph}">
213
<Setter Property="Margin" Value="0" />
215
</RichTextBox.Resources>
220
<Run Text="Windcape:"/>
223
<Span Foreground="#009933">
226
<Run Text=" we actually ran into some problem with Mono not support it properly :("/>
230
<Run Text="humanMeat:"/>
232
<Run Text=" you win 7 million dollars from clay mathematics instute"/>
236
<Run Text="humanMeat:"/>
238
<Run Text=" if youc an show"/>
242
<Run Text="humanMeat:"/>
244
<Run Text=" that RSA is crap"/>
248
<Run Text="Windcape:"/>
250
<Run Text=" but I didn't tell the teachers, as I wouldn't want to hear about "why didn't you use Java instead""/>
257
<Span Foreground="#009933">
258
<Run Text="Windcape"/>
260
<Run Text=" : How can something not support RSA properly?"/>
264
<Run Text="humanMeat:"/>
266
<Run Text=" and you also break the Internet"/>
272
<Run Text=" RSA is a cryptographic primitive, "/>
273
<Span Foreground="#009933">
274
<Run Text="Windcape"/>
281
<Run Text=" You can implement it."/>
285
<Run Text="humanMeat:"/>
287
<Run Text=" RSA is based on the fact that no one has found a solution to NPC problems"/>
291
<Run Text="humanMeat:"/>
293
<Run Text=" in polynomial time"/>
299
<Run Text=" It's not difficult by any means, you need an arbitrary precision integer class that supports prime generation and modular exponentiation"/>
303
<Run Text="Windcape:"/>
306
<Span Foreground="#009933">
309
<Run Text=" it's quite a while ago, I can't remember the precise issue. Would have to find the mails for the precise problem."/>
313
<Run Text="humanMeat:"/>
315
<Run Text=" so if you can say RSA is crap and broken in polynomial time. congratulations new millionaire"/>
319
<Run Text="humanMeat:"/>
321
<Run Text=" you are the smartest man on earth."/>
327
<Run Text=" I'd say RSA is going to be broken probably in the near future, and we have a lack of alternatives and that's a bad thing."/>
331
<Run Text="Windcape:"/>
334
<Span Foreground="#009933">
337
<Run Text=" and it wasn't the algorithm, but PKCS#12 "/>
338
<Hyperlink Foreground="Blue" NavigateUri="http://en.wikipedia.org/wiki/PKCS12">
339
<Run Text="http://en.wikipedia.org/wiki/PKCS12"/>
346
<Run Text=" If RSA is broken, so is basically every other asymmetric algorithm that is considered secure today."/>
350
<Run Text="humanMeat:"/>
353
<Span Foreground="#009933">
356
<Run Text=" , time to read Cook's Theorem."/>
360
<Run Text="Windcape:"/>
362
<Run Text=" which had some edge-case issues in Mono. We had a chat with their lead-dev on the crypto about it"/>
366
<Run Text="humanMeat:"/>
368
<Run Text=" you say that you can prove p=np like it's a walk in the park"/>
372
<Run Text="Windcape:"/>
375
<Span Foreground="#009933">
376
<Run Text="humanMeat"/>
378
<Run Text=" but still, you did CS, and ended up doing software engineering work?"/>
385
<Span Foreground="#009933">
386
<Run Text="humanMeat"/>
388
<Run Text=" : I never said I could prove anything"/>
394
<Run Text=" I'm saying if it's broken, we don't have really any alternatives right now."/>
400
<Run Text=" And that's a bad thing."/>
404
<Run Text="humanMeat:"/>
407
<Span Foreground="#009933">
410
<Run Text=" I'd say RSA is going to be broken probably in the near future, and we have a lack of alternatives and that's a bad thing."/>
416
<Run Text=" Yes, in the near future... 10 or 20 years I'd estimate."/>
422
<Run Text=" Maybe sooner."/>
427
<GridSplitter Name="gridSplitter" Width="5" Margin="0,12,-3,12" HorizontalAlignment="Right" VerticalAlignment="Stretch" Background="Transparent" ShowsPreview="True"
428
Grid.Row="1" Grid.Column="0" Grid.RowSpan="2">
429
<!--<GridSplitter.Template>
52
<Grid Style="{StaticResource BodyStyle}">
55
<RowDefinition Height="*"/>
56
<RowDefinition Height="Auto"/>
57
</Grid.RowDefinitions>
59
<Grid.ColumnDefinitions>
60
<ColumnDefinition Width="Auto" MinWidth="80" MaxWidth="10000"/>
61
<ColumnDefinition Width="*" MinWidth="80"/>
62
</Grid.ColumnDefinitions>
64
<ScrollViewer Margin="0,0,6,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Auto" BorderThickness="0"
65
Grid.Row="0" Grid.Column="0" Grid.RowSpan="2">
67
<StackPanel Orientation="Vertical">
69
<Expander Header="GimpNet" IsExpanded="True" Style="{StaticResource NetworkExpanderStyle}">
70
<ItemsControl Style="{StaticResource ChannelListItemsControlStyle}">
71
<TextBlock Text="#mono"/>
72
<TextBlock Text="#monodev"/>
76
<Expander Header="Freenode" IsExpanded="True" Style="{StaticResource NetworkExpanderStyle}">
77
<ItemsControl Style="{StaticResource ChannelListItemsControlStyle}">
78
<TextBlock Text="#freenode"/>
79
<TextBlock Text="##csharp"/>
80
<TextBlock Text="##wpf"/>
81
<TextBlock Text="#ircsil"/>
89
<RichTextBox MinHeight="80" Margin="6,0,0,6" IsReadOnly="True" AcceptsReturn="False" IsDocumentEnabled="True" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Visible"
90
Grid.Row="0" Grid.Column="1">
92
<RichTextBox.Resources>
93
<Style TargetType="{x:Type Paragraph}">
94
<Setter Property="Margin" Value="0" />
96
</RichTextBox.Resources>
101
<Run Text="Windcape:"/>
104
<Span Foreground="#009933">
107
<Run Text=" we actually ran into some problem with Mono not support it properly :("/>
111
<Run Text="humanMeat:"/>
113
<Run Text=" you win 7 million dollars from clay mathematics instute"/>
117
<Run Text="humanMeat:"/>
119
<Run Text=" if youc an show"/>
123
<Run Text="humanMeat:"/>
125
<Run Text=" that RSA is crap"/>
129
<Run Text="Windcape:"/>
131
<Run Text=" but I didn't tell the teachers, as I wouldn't want to hear about "why didn't you use Java instead""/>
138
<Span Foreground="#009933">
139
<Run Text="Windcape"/>
141
<Run Text=" : How can something not support RSA properly?"/>
145
<Run Text="humanMeat:"/>
147
<Run Text=" and you also break the Internet"/>
153
<Run Text=" RSA is a cryptographic primitive, "/>
154
<Span Foreground="#009933">
155
<Run Text="Windcape"/>
162
<Run Text=" You can implement it."/>
166
<Run Text="humanMeat:"/>
168
<Run Text=" RSA is based on the fact that no one has found a solution to NPC problems"/>
172
<Run Text="humanMeat:"/>
174
<Run Text=" in polynomial time"/>
180
<Run Text=" It's not difficult by any means, you need an arbitrary precision integer class that supports prime generation and modular exponentiation"/>
184
<Run Text="Windcape:"/>
187
<Span Foreground="#009933">
190
<Run Text=" it's quite a while ago, I can't remember the precise issue. Would have to find the mails for the precise problem."/>
194
<Run Text="humanMeat:"/>
196
<Run Text=" so if you can say RSA is crap and broken in polynomial time. congratulations new millionaire"/>
200
<Run Text="humanMeat:"/>
202
<Run Text=" you are the smartest man on earth."/>
208
<Run Text=" I'd say RSA is going to be broken probably in the near future, and we have a lack of alternatives and that's a bad thing."/>
212
<Run Text="Windcape:"/>
215
<Span Foreground="#009933">
218
<Run Text=" and it wasn't the algorithm, but PKCS#12 "/>
219
<Hyperlink Foreground="Blue" NavigateUri="http://en.wikipedia.org/wiki/PKCS12">
220
<Run Text="http://en.wikipedia.org/wiki/PKCS12"/>
227
<Run Text=" If RSA is broken, so is basically every other asymmetric algorithm that is considered secure today."/>
231
<Run Text="humanMeat:"/>
234
<Span Foreground="#009933">
237
<Run Text=" , time to read Cook's Theorem."/>
241
<Run Text="Windcape:"/>
243
<Run Text=" which had some edge-case issues in Mono. We had a chat with their lead-dev on the crypto about it"/>
247
<Run Text="humanMeat:"/>
249
<Run Text=" you say that you can prove p=np like it's a walk in the park"/>
253
<Run Text="Windcape:"/>
256
<Span Foreground="#009933">
257
<Run Text="humanMeat"/>
259
<Run Text=" but still, you did CS, and ended up doing software engineering work?"/>
266
<Span Foreground="#009933">
267
<Run Text="humanMeat"/>
269
<Run Text=" : I never said I could prove anything"/>
275
<Run Text=" I'm saying if it's broken, we don't have really any alternatives right now."/>
281
<Run Text=" And that's a bad thing."/>
285
<Run Text="humanMeat:"/>
288
<Span Foreground="#009933">
291
<Run Text=" I'd say RSA is going to be broken probably in the near future, and we have a lack of alternatives and that's a bad thing."/>
297
<Run Text=" Yes, in the near future... 10 or 20 years I'd estimate."/>
303
<Run Text=" Maybe sooner."/>
308
<GridSplitter Name="gridSplitter" Width="5" Margin="0,0,-3,0" HorizontalAlignment="Right" VerticalAlignment="Stretch" Background="Transparent" ShowsPreview="True"
309
Grid.Row="0" Grid.Column="0" Grid.RowSpan="2">
310
<!--<GridSplitter.Template>
430
311
<ControlTemplate>
432
313
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="Transparent"/>
435
316
</ControlTemplate>
436
317
</GridSplitter.Template>-->
439
<Grid Name="messagePanel" Margin="6,0,12,20" Grid.Row="2" Grid.Column="1">
441
<TextBox Name="messageTextBox" Height="62" Padding="4,4,60,4" VerticalAlignment="Top" BorderThickness="1" TextWrapping="Wrap"/>
443
<Button Height="{Binding ActualHeight, ElementName=messageTextBox}" HorizontalAlignment="Right" VerticalAlignment="Stretch" Cursor="Hand"
444
IsEnabled="{Binding Text.Length, ElementName=messageTextBox, Converter={StaticResource InequalityToBooleanConverter}, ConverterParameter={StaticResource ZeroInt32}}">
446
<ControlTemplate TargetType="Button">
447
<Viewbox Stretch="Uniform" Margin="10">
449
<Path Name="circlePath" Width="50" Height="50" Stretch="Uniform" Fill="#fff" Stroke="#999" StrokeThickness="2">
451
<EllipseGeometry Center="1,1" RadiusX="1" RadiusY="1"/>
454
<Path Name="chatBoxPath" Width="20" Height="20" Stretch="Uniform" Fill="#999">
456
<PathGeometry Figures="M 0,1 a 1,1 0 0 1 1,-1 h 8 a 1,1 0 0 1 1,1 v 5 a 1,1 0 0 1 -1,1 h -8 a 1,1 0 0 1 -1,-1 M 2,7 v 3 l 3,-3"/>
461
<ControlTemplate.Triggers>
462
<Trigger Property="IsEnabled" Value="False">
463
<Setter TargetName="circlePath" Property="Fill" Value="#fff"/>
464
<Setter TargetName="circlePath" Property="Stroke" Value="#ccc"/>
465
<Setter TargetName="chatBoxPath" Property="Fill" Value="#ccc"/>
467
<Trigger Property="IsMouseOver" Value="True">
468
<Setter TargetName="circlePath" Property="Fill" Value="#eee"/>
469
<Setter TargetName="circlePath" Property="Stroke" Value="#777"/>
470
<Setter TargetName="chatBoxPath" Property="Fill" Value="#777"/>
472
<Trigger Property="IsPressed" Value="True">
473
<Setter TargetName="circlePath" Property="Fill" Value="#ddd"/>
474
<Setter TargetName="circlePath" Property="Stroke" Value="#555"/>
475
<Setter TargetName="chatBoxPath" Property="Fill" Value="#555"/>
477
</ControlTemplate.Triggers>
320
<Grid Name="messagePanel" Margin="6,6,0,8" Grid.Row="1" Grid.Column="1">
322
<Grid.ColumnDefinitions>
323
<ColumnDefinition Width="*"/>
324
<ColumnDefinition Width="Auto"/>
325
</Grid.ColumnDefinitions>
327
<TextBox Name="messageTextBox" Height="62" Padding="4,4,60,4" VerticalAlignment="Top" BorderThickness="1" TextWrapping="Wrap" Grid.Column="0"/>
329
<Button Name="sendButton" Height="{Binding ActualHeight, ElementName=messageTextBox}" HorizontalAlignment="Right" VerticalAlignment="Stretch" Cursor="Hand"
330
IsEnabled="{Binding Text.Length, ElementName=messageTextBox, Converter={StaticResource InequalityToBooleanConverter}, ConverterParameter={StaticResource ZeroInt32}}"
333
<ControlTemplate TargetType="Button">
334
<Viewbox Stretch="Uniform" Margin="10">
336
<Path Name="circlePath" Width="50" Height="50" Stretch="Uniform" Fill="#fff" Stroke="#999" StrokeThickness="2">
338
<EllipseGeometry Center="1,1" RadiusX="1" RadiusY="1"/>
341
<Path Name="chatBoxPath" Width="20" Height="20" Stretch="Uniform" Fill="#999">
343
<PathGeometry Figures="M 0,1 a 1,1 0 0 1 1,-1 h 8 a 1,1 0 0 1 1,1 v 5 a 1,1 0 0 1 -1,1 h -8 a 1,1 0 0 1 -1,-1 M 2,7 v 3 l 3,-3"/>
348
<ControlTemplate.Triggers>
349
<Trigger Property="IsEnabled" Value="False">
350
<Setter TargetName="circlePath" Property="Fill" Value="#fff"/>
351
<Setter TargetName="circlePath" Property="Stroke" Value="#ccc"/>
352
<Setter TargetName="chatBoxPath" Property="Fill" Value="#ccc"/>
354
<Trigger Property="IsMouseOver" Value="True">
355
<Setter TargetName="circlePath" Property="Fill" Value="#eee"/>
356
<Setter TargetName="circlePath" Property="Stroke" Value="#777"/>
357
<Setter TargetName="chatBoxPath" Property="Fill" Value="#777"/>
359
<Trigger Property="IsPressed" Value="True">
360
<Setter TargetName="circlePath" Property="Fill" Value="#ddd"/>
361
<Setter TargetName="circlePath" Property="Stroke" Value="#555"/>
362
<Setter TargetName="chatBoxPath" Property="Fill" Value="#555"/>
364
</ControlTemplate.Triggers>
369
<StackPanel Margin="12,0,0,0" Orientation="Horizontal" Grid.Column="1">
371
<Button Name="usersButton" Height="{Binding ActualHeight, ElementName=messageTextBox}" HorizontalAlignment="Right" VerticalAlignment="Stretch" Cursor="Hand"
372
IsEnabled="{Binding Text.Length, ElementName=messageTextBox, Converter={StaticResource InequalityToBooleanConverter}, ConverterParameter={StaticResource ZeroInt32}}">
374
<ControlTemplate TargetType="Button">
375
<Viewbox Stretch="Uniform" Margin="10">
377
<Path Name="circlePath" Width="50" Height="50" Stretch="Uniform" Fill="#fff" Stroke="#999" StrokeThickness="2">
379
<EllipseGeometry Center="1,1" RadiusX="1" RadiusY="1"/>
382
<Path Name="headPath" Width="20" Height="20" Stretch="Uniform" Fill="#999" Stroke="#999" StrokeThickness="2">
384
<EllipseGeometry Center="1,1" RadiusX="1" RadiusY="2"/>
389
<ControlTemplate.Triggers>
390
<Trigger Property="IsEnabled" Value="False">
391
<Setter TargetName="circlePath" Property="Fill" Value="#fff"/>
393
<Trigger Property="IsMouseOver" Value="True">
394
<Setter TargetName="circlePath" Property="Fill" Value="#eee"/>
396
<Trigger Property="IsPressed" Value="True">
397
<Setter TargetName="circlePath" Property="Fill" Value="#ddd"/>
399
</ControlTemplate.Triggers>
486
</local:CustomWindow>