Loading src/WatermarkClock/WatermarkClockWindow.xaml +2 −2 Original line number Diff line number Diff line <Window x:Class="WatermarkClock.WatermarkClockWindow" <Window x:Class="WatermarkClock.WatermarkClockWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Loading @@ -12,7 +12,7 @@ SizeToContent="WidthAndHeight" Background="Transparent" AllowsTransparency="True" Title="WatermarkClockWindow" Height="450" Width="800"> Title="WatermarkClockWindow"> <WindowChrome.WindowChrome> <WindowChrome GlassFrameThickness="-1" /> </WindowChrome.WindowChrome> Loading src/WatermarkClock/WatermarkClockWindow.xaml.cs +24 −20 Original line number Diff line number Diff line using System; using System; using System.ComponentModel; using System.Windows; Loading @@ -7,19 +7,10 @@ namespace WatermarkClock public partial class WatermarkClockWindow : Window { private Context _context = null; private double _fullscreenWidth = 0; private double _fullscreenHeight = 0; public WatermarkClockWindow() { InitializeComponent(); WindowState = WindowState.Maximized; _fullscreenHeight = this.ActualHeight; _fullscreenWidth = this.ActualWidth; WindowState = WindowState.Normal; } protected override void OnClosing(CancelEventArgs e) Loading @@ -43,6 +34,16 @@ namespace WatermarkClock ChangeTextBrush(); } protected override void OnStateChanged(EventArgs e) { base.OnStateChanged(e); // 禁止最大化,避免全屏透明窗口影响重绘效率和截图程序 if (WindowState == WindowState.Maximized) { WindowState = WindowState.Normal; } } private void OnSizeChanged(object sender, SizeChangedEventArgs e) { UpdateWindowPosition(); Loading Loading @@ -119,23 +120,26 @@ namespace WatermarkClock private void ChangePadding() { var p = _context.Padding; var p = (double)_context.Padding; var workArea = SystemParameters.WorkArea; switch (_context.MarkPosition) { case MarkPosition.TopLeft: Top = p; Left = p; Top = workArea.Top + p; Left = workArea.Left + p; break; case MarkPosition.TopRight: Top = p; Left = _fullscreenWidth - ActualWidth - p; Top = workArea.Top + p; Left = workArea.Right - ActualWidth - p; break; case MarkPosition.TopCenter: Top = p; Left = 0; Top = workArea.Top + p; Left = workArea.Left + (workArea.Width - ActualWidth) / 2; break; case MarkPosition.ScreenCenter: Top = workArea.Top + (workArea.Height - ActualHeight) / 2; Left = workArea.Left + (workArea.Width - ActualWidth) / 2; break; default: throw new ArgumentOutOfRangeException(); Loading Loading
src/WatermarkClock/WatermarkClockWindow.xaml +2 −2 Original line number Diff line number Diff line <Window x:Class="WatermarkClock.WatermarkClockWindow" <Window x:Class="WatermarkClock.WatermarkClockWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Loading @@ -12,7 +12,7 @@ SizeToContent="WidthAndHeight" Background="Transparent" AllowsTransparency="True" Title="WatermarkClockWindow" Height="450" Width="800"> Title="WatermarkClockWindow"> <WindowChrome.WindowChrome> <WindowChrome GlassFrameThickness="-1" /> </WindowChrome.WindowChrome> Loading
src/WatermarkClock/WatermarkClockWindow.xaml.cs +24 −20 Original line number Diff line number Diff line using System; using System; using System.ComponentModel; using System.Windows; Loading @@ -7,19 +7,10 @@ namespace WatermarkClock public partial class WatermarkClockWindow : Window { private Context _context = null; private double _fullscreenWidth = 0; private double _fullscreenHeight = 0; public WatermarkClockWindow() { InitializeComponent(); WindowState = WindowState.Maximized; _fullscreenHeight = this.ActualHeight; _fullscreenWidth = this.ActualWidth; WindowState = WindowState.Normal; } protected override void OnClosing(CancelEventArgs e) Loading @@ -43,6 +34,16 @@ namespace WatermarkClock ChangeTextBrush(); } protected override void OnStateChanged(EventArgs e) { base.OnStateChanged(e); // 禁止最大化,避免全屏透明窗口影响重绘效率和截图程序 if (WindowState == WindowState.Maximized) { WindowState = WindowState.Normal; } } private void OnSizeChanged(object sender, SizeChangedEventArgs e) { UpdateWindowPosition(); Loading Loading @@ -119,23 +120,26 @@ namespace WatermarkClock private void ChangePadding() { var p = _context.Padding; var p = (double)_context.Padding; var workArea = SystemParameters.WorkArea; switch (_context.MarkPosition) { case MarkPosition.TopLeft: Top = p; Left = p; Top = workArea.Top + p; Left = workArea.Left + p; break; case MarkPosition.TopRight: Top = p; Left = _fullscreenWidth - ActualWidth - p; Top = workArea.Top + p; Left = workArea.Right - ActualWidth - p; break; case MarkPosition.TopCenter: Top = p; Left = 0; Top = workArea.Top + p; Left = workArea.Left + (workArea.Width - ActualWidth) / 2; break; case MarkPosition.ScreenCenter: Top = workArea.Top + (workArea.Height - ActualHeight) / 2; Left = workArea.Left + (workArea.Width - ActualWidth) / 2; break; default: throw new ArgumentOutOfRangeException(); Loading