MainWindow.xaml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. Closing="Window_Closing"
  25. SizeChanged="Window_SizeChanged">
  26. <Window.Resources>
  27. <ContextMenu x:Key="MainContextMenu" x:Shared="False">
  28. <MenuItem Command="{Binding CopyToClipboardCommand}" Header="_Copy" />
  29. <Separator />
  30. <MenuItem Header="Stay on _top"
  31. IsCheckable="True"
  32. IsChecked="{Binding Topmost, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  33. <MenuItem Header="Show icon in tas_kbar"
  34. IsCheckable="True"
  35. IsChecked="{Binding ShowInTaskbar, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  36. <MenuItem Header="Start with _PC"
  37. IsCheckable="True"
  38. IsChecked="{Binding RunOnStartup, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  39. <MenuItem Header="Show _background"
  40. IsCheckable="True"
  41. IsChecked="{Binding BackgroundEnabled, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  42. <MenuItem>
  43. <MenuItem.Header>
  44. <StackPanel Orientation="Horizontal">
  45. <TextBlock Text="Size: " />
  46. <Slider Width="80"
  47. AutoToolTipPlacement="TopLeft"
  48. IsSnapToTickEnabled="True"
  49. Maximum="160"
  50. Minimum="16"
  51. Value="{Binding Height, Source={x:Static p:Settings.Default}, Mode=TwoWay}" />
  52. </StackPanel>
  53. </MenuItem.Header>
  54. </MenuItem>
  55. <MenuItem Header="T_heme" ItemsSource="{x:Static local:App.Themes}">
  56. <MenuItem.Resources>
  57. <Style TargetType="MenuItem">
  58. <Setter Property="Command" Value="{Binding DataContext.SetThemeCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
  59. <Setter Property="CommandParameter" Value="{Binding}" />
  60. <Setter Property="DisplayMemberPath" Value="Name" />
  61. </Style>
  62. </MenuItem.Resources>
  63. </MenuItem>
  64. <MenuItem Header="Time _Zone" ItemsSource="{x:Static local:DateTimeUtil.TimeZones}">
  65. <MenuItem.Resources>
  66. <Style TargetType="MenuItem">
  67. <Setter Property="Command" Value="{Binding DataContext.SetTimeZoneCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
  68. <Setter Property="CommandParameter" Value="{Binding}" />
  69. </Style>
  70. </MenuItem.Resources>
  71. </MenuItem>
  72. <MenuItem Header="_Format" ItemsSource="{x:Static local:DateTimeUtil.DateTimeFormatsAndExamples}">
  73. <MenuItem.Resources>
  74. <Style TargetType="MenuItem">
  75. <Setter Property="Command" Value="{Binding DataContext.SetFormatCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
  76. <Setter Property="CommandParameter" Value="{Binding Key}" />
  77. <Setter Property="DisplayMemberPath" Value="Value" />
  78. </Style>
  79. </MenuItem.Resources>
  80. </MenuItem>
  81. <Separator />
  82. <MenuItem Command="{Binding NewClockCommand}" Header="_New clock..." />
  83. <MenuItem Command="{Binding CountdownToCommand}" Header="_Countdown to..." />
  84. <MenuItem Command="{Binding OpenSettingsCommand}" Header="Advanced _settings..." />
  85. <MenuItem Command="{Binding CheckForUpdatesCommand}" Header="Check for _updates..." />
  86. <MenuItem Command="{Binding ExitCommand}" Header="E_xit" />
  87. </ContextMenu>
  88. <tb:TaskbarIcon x:Key="TrayIcon"
  89. x:Shared="False"
  90. IconSource="DesktopClock.ico"
  91. ToolTipText="DesktopClock"
  92. MenuActivation="LeftOrRightClick" />
  93. </Window.Resources>
  94. <Viewbox Height="{Binding Height, Source={x:Static p:Settings.Default}, Mode=OneWay}">
  95. <Border CornerRadius="{Binding CornerRadius, Source={x:Static p:Settings.Default}, Mode=OneWay}">
  96. <Border.Style>
  97. <Style TargetType="Border">
  98. <Setter Property="Background">
  99. <Setter.Value>
  100. <SolidColorBrush Opacity="{Binding BackgroundOpacity, Source={x:Static p:Settings.Default}, Mode=OneWay}" Color="{Binding OuterColor, Source={x:Static p:Settings.Default}, Mode=OneWay}" />
  101. </Setter.Value>
  102. </Setter>
  103. <Style.Triggers>
  104. <DataTrigger Binding="{Binding BackgroundEnabled, Source={x:Static p:Settings.Default}, Mode=OneWay}" Value="False">
  105. <DataTrigger.Setters>
  106. <Setter Property="Background" Value="Transparent" />
  107. </DataTrigger.Setters>
  108. </DataTrigger>
  109. </Style.Triggers>
  110. </Style>
  111. </Border.Style>
  112. <local:OutlinedTextBlock Margin="1,0,1,0"
  113. HorizontalAlignment="Center"
  114. Text="{Binding CurrentTimeOrCountdownString}"
  115. StrokeThickness="{Binding OutlineThickness, Source={x:Static p:Settings.Default}, Mode=OneWay}">
  116. <local:OutlinedTextBlock.Fill>
  117. <SolidColorBrush Color="{Binding TextColor, Source={x:Static p:Settings.Default}, Mode=OneWay}" />
  118. </local:OutlinedTextBlock.Fill>
  119. <local:OutlinedTextBlock.Style>
  120. <Style TargetType="local:OutlinedTextBlock">
  121. <Setter Property="Stroke" Value="Transparent" />
  122. <Style.Triggers>
  123. <DataTrigger Binding="{Binding BackgroundEnabled, Source={x:Static p:Settings.Default}, Mode=OneWay}" Value="False">
  124. <DataTrigger.Setters>
  125. <Setter Property="Stroke">
  126. <Setter.Value>
  127. <SolidColorBrush Color="{Binding OuterColor, Source={x:Static p:Settings.Default}, Mode=OneWay}" />
  128. </Setter.Value>
  129. </Setter>
  130. </DataTrigger.Setters>
  131. </DataTrigger>
  132. </Style.Triggers>
  133. </Style>
  134. </local:OutlinedTextBlock.Style>
  135. </local:OutlinedTextBlock>
  136. </Border>
  137. </Viewbox>
  138. </Window>