Commit b476e7e0 authored by shrabbit's avatar shrabbit
Browse files

字体选择

parent 06046923
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -63,6 +63,17 @@ namespace WatermarkClock
            }
        }

        private FontFamily _fontFamily = new FontFamily("Microsoft YaHei UI");
        public FontFamily FontFamily
        {
            get => _fontFamily;
            set
            {
                if (SetField(ref _fontFamily, value))
                    OnPropertyChanged();
            }
        }

        private Brush _olBrs;
        public Brush OutlineBrush
        {
+9 −4
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="90"/>
@@ -55,11 +56,15 @@
                    <TextBlock Text="字体大小:" VerticalAlignment="Center" Grid.Row="2"/>
                    <TextBox x:Name="TbFontSize" Grid.Row="2" Grid.Column="1" Margin="0,4" Text="28"/>

                    <TextBlock Text="文字颜色:" VerticalAlignment="Center" Grid.Row="3"/>
                    <TextBox x:Name="TbTextColor" Grid.Row="3" Grid.Column="1" Margin="0,4" Text="#FFFFFF"/>
                    <TextBlock Text="字体:" VerticalAlignment="Center" Grid.Row="3"/>
                    <ComboBox x:Name="CbFontFamily" Grid.Row="3" Grid.Column="1" Margin="0,4"
                              IsEditable="True" IsTextSearchEnabled="True"/>

                    <TextBlock Text="文字颜色:" VerticalAlignment="Center" Grid.Row="4"/>
                    <TextBox x:Name="TbTextColor" Grid.Row="4" Grid.Column="1" Margin="0,4" Text="#FFFFFF"/>

                    <TextBlock Text="刷新间隔:" VerticalAlignment="Center" Grid.Row="4"/>
                    <StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="1" Margin="0,4">
                    <TextBlock Text="刷新间隔:" VerticalAlignment="Center" Grid.Row="5"/>
                    <StackPanel Orientation="Horizontal" Grid.Row="5" Grid.Column="1" Margin="0,4">
                        <TextBox x:Name="TbRefreshInterval" Width="80" Text="16"/>
                        <TextBlock Text="ms" VerticalAlignment="Center" Margin="4,0,0,0"/>
                    </StackPanel>
+9 −0
Original line number Diff line number Diff line
using System;
using System.Linq;
using System.Windows;
using System.Windows.Media;
using System.Windows.Threading;
using WatermarkClock.Templates;

@@ -32,6 +33,9 @@ namespace WatermarkClock
        {
            CbPosition.ItemsSource = Enum.GetValues(typeof(MarkPosition));
            CbPosition.SelectedIndex = 1;

            CbFontFamily.ItemsSource = Fonts.SystemFontFamilies.OrderBy(f => f.Source);
            CbFontFamily.SelectedItem = _ctx.FontFamily;
        }

        private void LoadDefaults()
@@ -56,6 +60,11 @@ namespace WatermarkClock

            _ctx.TextColor = TbTextColor.Text;

            if (CbFontFamily.SelectedItem is FontFamily ff)
                _ctx.FontFamily = ff;
            else if (!string.IsNullOrWhiteSpace(CbFontFamily.Text))
                _ctx.FontFamily = new FontFamily(CbFontFamily.Text);

            if (int.TryParse(TbRefreshInterval.Text, out var refreshMs) && refreshMs > 0)
                _ctx.RefreshInterval = refreshMs;

+12 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ namespace WatermarkClock
            ChangePosition();
            ChangeTextBrush();
            ChangeFontSize();
            ChangeFontFamily();
        }

        protected override void OnStateChanged(EventArgs e)
@@ -84,6 +85,12 @@ namespace WatermarkClock
                    ChangeFontSize();
                    return;
                }

                case nameof(_context.FontFamily):
                {
                    ChangeFontFamily();
                    return;
                }
            }
        }

@@ -131,6 +138,11 @@ namespace WatermarkClock
            Text.FontSize = _context.FontSize;
        }

        private void ChangeFontFamily()
        {
            Text.FontFamily = _context.FontFamily;
        }

        private void ChangePadding()
        {
            var p = (double)_context.Padding;