MainWindow.xaml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <Window x:Class="DesktopClock.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:DesktopClock"
  7. xmlns:p="clr-namespace:DesktopClock.Properties"
  8. xmlns:tb="http://www.hardcodet.net/taskbar"
  9. mc:Ignorable="d"
  10. Title="DesktopClock"
  11. AllowsTransparency="True"
  12. Background="Transparent"
  13. WindowStyle="None"
  14. ResizeMode="NoResize"
  15. SizeToContent="WidthAndHeight"
  16. UseLayoutRounding="True"
  17. Topmost="{Binding Topmost, Source={x:Static p:Settings.Default}, Mode=TwoWay}"
  18. ShowInTaskbar="{Binding ShowInTaskbar, Source={x:Static p:Settings.Default}, Mode=TwoWay}"
  19. FontFamily="{Binding FontFamily, Source={x:Static p:Settings.Default}, Mode=OneWay}"
  20. MouseDown="Window_MouseDown"
  21. MouseDoubleClick="Window_MouseDoubleClick"
  22. MouseWheel="Window_MouseWheel"
  23. SourceInitialized="Window_SourceInitialized"
  24. Deactivated="Window_Deactivated"
  25. Closed="Window_Closed"
  26. SizeChanged="Window_SizeChanged">
  27. <Window.Resources>
  28. <ContextMenu x:Key="MainContextMenu" x:Shared="False">
  29. <MenuItem Command="{Binding CopyToClipboardCommand}" Header="_Copy" />
  30. <Separator />
  31. <MenuItem Header="Stay on _top"
  32. IsCheckable="True"
  33. IsChecked="{Binding Topmost, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  34. <MenuItem Header="Show icon in tas_kbar"
  35. IsCheckable="True"
  36. IsChecked="{Binding ShowInTaskbar, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  37. <MenuItem Header="Start with _PC"
  38. IsCheckable="True"
  39. IsChecked="{Binding RunOnStartup, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  40. <MenuItem Header="Show _background"
  41. IsCheckable="True"
  42. IsChecked="{Binding BackgroundEnabled, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  43. <MenuItem>
  44. <MenuItem.Header>
  45. <StackPanel Orientation="Horizontal">
  46. <TextBlock Text="Size: " />
  47. <Slider Width="80"
  48. AutoToolTipPlacement="TopLeft"
  49. IsSnapToTickEnabled="True"
  50. Maximum="160"
  51. Minimum="16"
  52. Value="{Binding Height, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  53. </StackPanel>
  54. </MenuItem.Header>
  55. </MenuItem>
  56. <MenuItem Header="T_heme" ItemsSource="{x:Static local:App.Themes}">
  57. <MenuItem.Resources>
  58. <Style TargetType="MenuItem">
  59. <Setter Property="Command" Value="{Binding DataContext.SetThemeCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
  60. <Setter Property="CommandParameter" Value="{Binding}" />
  61. <Setter Property="DisplayMemberPath" Value="Name" />
  62. </Style>
  63. </MenuItem.Resources>
  64. </MenuItem>
  65. <MenuItem Header="Time _Zone" ItemsSource="{x:Static local:DateTimeUtil.TimeZones}">
  66. <MenuItem.Resources>
  67. <Style TargetType="MenuItem">
  68. <Setter Property="Command" Value="{Binding DataContext.SetTimeZoneCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
  69. <Setter Property="CommandParameter" Value="{Binding}" />
  70. </Style>
  71. </MenuItem.Resources>
  72. </MenuItem>
  73. <MenuItem Header="_Format" ItemsSource="{x:Static local:DateTimeUtil.DateTimeFormatsAndExamples}">
  74. <MenuItem.Resources>
  75. <Style TargetType="MenuItem">
  76. <Setter Property="Command" Value="{Binding DataContext.SetFormatCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
  77. <Setter Property="CommandParameter" Value="{Binding Key}" />
  78. <Setter Property="DisplayMemberPath" Value="Value" />
  79. </Style>
  80. </MenuItem.Resources>
  81. </MenuItem>
  82. <Separator />
  83. <MenuItem Command="{Binding NewClockCommand}" Header="_New clock..." />
  84. <MenuItem Command="{Binding CountdownToCommand}" Header="_Countdown to..." />
  85. <MenuItem Command="{Binding OpenSettingsCommand}" Header="Advanced _settings..." />
  86. <MenuItem Command="{Binding CheckForUpdatesCommand}" Header="Check for _updates..." />
  87. <MenuItem Command="{Binding ExitCommand}" Header="E_xit" />
  88. </ContextMenu>
  89. <tb:TaskbarIcon x:Key="TrayIcon"
  90. x:Shared="False"
  91. IconSource="DesktopClock.ico"
  92. ToolTipText="DesktopClock"
  93. MenuActivation="LeftOrRightClick" />
  94. </Window.Resources>
  95. <Viewbox Height="{Binding Height, Source={x:Static p:Settings.Default}, Mode=OneWay}">
  96. <Border CornerRadius="{Binding BackgroundCornerRadius, Source={x:Static p:Settings.Default}, Mode=OneWay}" Padding="1,0,1,0">
  97. <Border.Style>
  98. <Style TargetType="Border">
  99. <Setter Property="Background">
  100. <Setter.Value>
  101. <SolidColorBrush Opacity="{Binding BackgroundOpacity, Source={x:Static p:Settings.Default}, Mode=OneWay}" Color="{Binding OuterColor, Source={x:Static p:Settings.Default}, Mode=OneWay}" />
  102. </Setter.Value>
  103. </Setter>
  104. <Style.Triggers>
  105. <DataTrigger Binding="{Binding BackgroundEnabled, Source={x:Static p:Settings.Default}, Mode=OneWay}" Value="False">
  106. <DataTrigger.Setters>
  107. <Setter Property="Background" Value="Transparent" />
  108. </DataTrigger.Setters>
  109. </DataTrigger>
  110. </Style.Triggers>
  111. </Style>
  112. </Border.Style>
  113. <local:OutlinedTextBlock HorizontalAlignment="Center"
  114. Text="{Binding CurrentTimeOrCountdownString}"
  115. StrokeThickness="{Binding OutlineThickness, Source={x:Static p:Settings.Default}, Mode=OneWay}"
  116. Margin="{Binding OutlineThickness, Source={x:Static p:Settings.Default}, Mode=OneWay}">
  117. <local:OutlinedTextBlock.Fill>
  118. <SolidColorBrush Color="{Binding TextColor, Source={x:Static p:Settings.Default}, Mode=OneWay}" />
  119. </local:OutlinedTextBlock.Fill>
  120. <local:OutlinedTextBlock.Style>
  121. <Style TargetType="local:OutlinedTextBlock">
  122. <Setter Property="Stroke" Value="Transparent" />
  123. <Style.Triggers>
  124. <DataTrigger Binding="{Binding BackgroundEnabled, Source={x:Static p:Settings.Default}, Mode=OneWay}" Value="False">
  125. <DataTrigger.Setters>
  126. <Setter Property="Stroke">
  127. <Setter.Value>
  128. <SolidColorBrush Color="{Binding OuterColor, Source={x:Static p:Settings.Default}, Mode=OneWay}" />
  129. </Setter.Value>
  130. </Setter>
  131. </DataTrigger.Setters>
  132. </DataTrigger>
  133. </Style.Triggers>
  134. </Style>
  135. </local:OutlinedTextBlock.Style>
  136. </local:OutlinedTextBlock>
  137. </Border>
  138. </Viewbox>
  139. </Window>