Commit b73ab524 authored by shrabbit's avatar shrabbit
Browse files

修复定位错误

parent 63b76abc
Loading
Loading
Loading
Loading
+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"
@@ -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>
+24 −20
Original line number Diff line number Diff line
using System;
using System;
using System.ComponentModel;
using System.Windows;

@@ -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)
@@ -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();
@@ -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();