فهرست منبع

Improve user-friendliness / UX

Daniel Chalmers 5 ماه پیش
والد
کامیت
5c65fe10ea
4فایلهای تغییر یافته به همراه58 افزوده شده و 87 حذف شده
  1. 4 4
      DesktopClock/MainWindow.xaml
  2. 6 6
      DesktopClock/MainWindow.xaml.cs
  3. 35 60
      DesktopClock/SettingsWindow.xaml
  4. 13 17
      README.md

+ 4 - 4
DesktopClock/MainWindow.xaml

@@ -71,19 +71,19 @@
 
             <MenuItem Command="{Binding OpenSettingsWindowCommand}"
                       CommandParameter="0"
-                      Header="_Format" />
+                      Header="_Format" />
 
             <MenuItem Command="{Binding OpenSettingsWindowCommand}"
                       CommandParameter="1"
-                      Header="_Appearance" />
+                      Header="_Appearance" />
 
             <MenuItem Command="{Binding OpenSettingsWindowCommand}"
                       CommandParameter="2"
-                      Header="_Behavior" />
+                      Header="_Behavior" />
 
             <MenuItem Command="{Binding OpenSettingsWindowCommand}"
                       CommandParameter="3"
-                      Header="H_elp" />
+                      Header="H_elp" />
 
             <Separator />
 

+ 6 - 6
DesktopClock/MainWindow.xaml.cs

@@ -82,7 +82,7 @@ public partial class MainWindow : Window
     {
         if (!Settings.Default.TipsShown.HasFlag(TeachingTips.HideForNow))
         {
-            MessageBox.Show(this, "Clock will be minimized and can be opened again from the taskbar (or system tray if enabled).",
+            MessageBox.Show(this, "Minimzing clock. Open later from the taskbar, or tray if enabled.",
                 Title, MessageBoxButton.OK, MessageBoxImage.Information);
 
             Settings.Default.TipsShown |= TeachingTips.HideForNow;
@@ -116,7 +116,7 @@ public partial class MainWindow : Window
         if (!Settings.Default.TipsShown.HasFlag(TeachingTips.AdvancedSettings))
         {
             MessageBox.Show(this,
-                "Settings are stored in JSON format and will be opened in Notepad. Simply save the file to see your changes appear on the clock. To start fresh, delete your '.settings' file.",
+                "Settings are stored in JSON format and will be opened in Notepad. Save the file for your changes to take effect. To start fresh, delete your '.settings' file.",
                 Title, MessageBoxButton.OK, MessageBoxImage.Information);
 
             Settings.Default.TipsShown |= TeachingTips.AdvancedSettings;
@@ -144,9 +144,9 @@ public partial class MainWindow : Window
         {
             // Lazy scammers on the Microsoft Store may reupload without realizing it gets sandboxed, making it unable to start the Notepad process (#1, #12).
             MessageBox.Show(this,
-                "Couldn't open settings file.\n\n" +
-                "This app may have be reuploaded without permission. If you paid for it, ask for a refund and download it for free from the original source: https://github.com/danielchalmers/DesktopClock.\n\n" +
-                $"If it still doesn't work, create a new Issue at that link with details on what happened and include this error: \"{ex.Message}\"",
+                "Couldn't open settings file in Notepad.\n\n" +
+                "This app may have be stolen. If you paid for it, ask for a refund and download it for free from https://github.com/danielchalmers/DesktopClock.\n\n" +
+                $"If it still doesn't work, create a new issue at that link with details on what happened and include this error: \"{ex.Message}\"",
                 Title, MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
@@ -387,7 +387,7 @@ public partial class MainWindow : Window
                 "Settings can't be saved because of an access error.\n\n" +
                 $"Make sure {Title} is in a folder that doesn't require admin privileges, " +
                 "and that you got it from the original source: https://github.com/danielchalmers/DesktopClock.\n\n" +
-                "If the problem still persists, feel free to create a new Issue at the above link with as many details as possible.",
+                "If the problem still persists, create a new issue at the link with as many details as possible.",
                 Title, MessageBoxButton.OK, MessageBoxImage.Warning);
         }
     }

+ 35 - 60
DesktopClock/SettingsWindow.xaml

@@ -9,13 +9,13 @@
         xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
         mc:Ignorable="d"
         Title="DesktopClock"
-        Width="500"
+        Width="600"
         ResizeMode="CanMinimize"
         SizeToContent="Height"
         WindowStartupLocation="CenterScreen">
     <Window.Resources>
         <Style TargetType="Button">
-            <Setter Property="Padding" Value="4,0" />
+            <Setter Property="Padding" Value="8,0" />
         </Style>
 
         <Style TargetType="TextBox">
@@ -44,12 +44,11 @@
                               SelectionChanged="SelectFormat" />
                 </Grid>
                 <TextBlock FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12">
-                    <Run Text=".NET format string for the time shown on the clock. Format specific parts inside { and }." />
+                           Margin="0,0,0,16">
+                    <Run Text="Format string for the time. Anything in inside '{' and '}' will be formatted -" />
                     <Hyperlink NavigateUri="https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings"
                                RequestNavigate="Hyperlink_RequestNavigate">
-                        Learn more
+                        Learn more.
                     </Hyperlink>
                 </TextBlock>
 
@@ -58,13 +57,13 @@
                          AcceptsReturn="True"
                          MaxLines="3" />
                 <TextBlock FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12">
-                    <Run Text=".NET format string for the countdown mode. If left blank, it will be dynamic." />
+                           Margin="0,0,0,16">
+                    <Run Text="Format string for the countdown mode -" />
                     <Hyperlink NavigateUri="https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-timespan-format-strings"
                                RequestNavigate="Hyperlink_RequestNavigate">
-                        Learn more
+                        Learn more.
                     </Hyperlink>
+                    <Run Text="Dynamic if left blank." />
                 </TextBlock>
 
                 <TextBlock Text="Countdown To:" />
@@ -78,13 +77,11 @@
                              Grid.Column="0" />
                     <Button Content="Reset"
                             Command="{Binding ResetCountdownCommand}"
-                            Padding="4,0,4,0"
                             Grid.Column="1" />
                 </Grid>
-                <TextBlock Text="Date and time to countdown to. If left blank, countdown mode is not enabled."
+                <TextBlock Text="Date and time to countdown to. Not enabled if left blank."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
 
                 <TextBlock Text="Time Zone:" />
@@ -93,8 +90,7 @@
                           DisplayMemberPath="DisplayName" />
                 <TextBlock Text="A different time zone to be used."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
             </StackPanel>
         </TabItem>
 
@@ -105,23 +101,20 @@
                           SelectedItem="{Binding Settings.FontFamily, Mode=TwoWay}" />
                 <TextBlock Text="Font to use for the clock's text."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <TextBlock Text="Font Style:" />
                 <ComboBox ItemsSource="{Binding FontStyles}"
                           SelectedItem="{Binding Settings.FontStyle, Mode=TwoWay}" />
                 <TextBlock Text="Style of font to use for the clock's text."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <TextBlock Text="Text Color:" />
                 <TextBox Text="{Binding Settings.TextColor, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                 <TextBlock Text="Text color for the clock's text."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <TextBlock Text="Text Opacity:" />
                 <Slider Value="{Binding Settings.TextOpacity, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
@@ -131,22 +124,19 @@
                         IsSnapToTickEnabled="True" />
                 <TextBlock Text="Opacity of the clock's text."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <TextBlock Text="Outer Color:" />
                 <TextBox Text="{Binding Settings.OuterColor, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                 <TextBlock Text="The outer color, for either the background or the outline."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <CheckBox Content="Enable Background"
                           IsChecked="{Binding Settings.BackgroundEnabled, Mode=TwoWay}" />
                 <TextBlock Text="Shows a solid background instead of an outline."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <TextBlock Text="Background Opacity:" />
                 <Slider Value="{Binding Settings.BackgroundOpacity, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
@@ -156,16 +146,14 @@
                         IsSnapToTickEnabled="True" />
                 <TextBlock Text="Opacity of the background."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <!--  Binding doesn't format correctly and needs better documentation.  -->
                 <!--<TextBlock Text="Background Corner Radius:" />
                 <TextBox Text="{Binding Settings.BackgroundCornerRadius, Mode=TwoWay}" />
                 <TextBlock Text="Corner radius of the background."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />-->
+                           Margin="0,0,0,16" />-->
 
                 <TextBlock Text="Background Image Path:" />
                 <Grid>
@@ -178,21 +166,18 @@
                              Grid.Column="0" />
                     <Button Content="Browse..."
                             Click="BrowseBackgroundImagePath"
-                            Padding="4,0,4,0"
                             Grid.Column="1" />
                 </Grid>
-                <TextBlock Text="Path to the background image. If left blank, a solid color will be used."
+                <TextBlock Text="Path to the background image. A solid color will be used if left blank."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <!--  Binding doesn't format correctly and needs better documentation.  -->
                 <!--<TextBlock Text="Outline Thickness:" />
                 <TextBox Text="{Binding Settings.OutlineThickness, Mode=TwoWay}" />
                 <TextBlock Text="Thickness of the outline around the clock."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />-->
+                           Margin="0,0,0,16" />-->
             </StackPanel>
         </TabItem>
 
@@ -202,43 +187,37 @@
                           IsChecked="{Binding Settings.ShowInTaskbar, Mode=TwoWay}" />
                 <TextBlock Text="Shows the app icon in the taskbar instead of the tray."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <CheckBox Content="Run on Startup"
                           IsChecked="{Binding Settings.RunOnStartup, Mode=TwoWay}" />
                 <TextBlock Text="Opens the app when you log in."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <CheckBox Content="Start Hidden"
                           IsChecked="{Binding Settings.StartHidden, Mode=TwoWay}" />
                 <TextBlock Text="Starts the app hidden until the taskbar or tray icon is clicked."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <CheckBox Content="Drag to Move"
                           IsChecked="{Binding Settings.DragToMove, Mode=TwoWay}" />
                 <TextBlock Text="Allows moving the clock by dragging it with the cursor."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <CheckBox Content="Right Aligned"
                           IsChecked="{Binding Settings.RightAligned, Mode=TwoWay}" />
                 <TextBlock Text="Experimental: Keeps the clock window aligned to the right when the size changes."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <CheckBox Content="Burn-in Mitigation"
                           IsChecked="{Binding Settings.BurnInMitigation, Mode=TwoWay}" />
                 <TextBlock Text="Experimental: Shifts the clock periodically in order to reduce screen burn-in."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <TextBlock Text="WAV File Path:" />
                 <Grid>
@@ -251,27 +230,23 @@
                              Grid.Column="0" />
                     <Button Content="Browse..."
                             Click="BrowseWavFilePath"
-                            Padding="4,0,4,0"
                             Grid.Column="1" />
                 </Grid>
                 <TextBlock Text="Path to a WAV file to be played on a specified interval."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <TextBlock Text="WAV File Interval:" />
                 <TextBox Text="{Binding Settings.WavFileInterval, Mode=TwoWay}" />
                 <TextBlock Text="Interval for playing the WAV file if one is specified and exists (HH:mm:ss)."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
 
                 <CheckBox Content="Play WAV File on Countdown"
                           IsChecked="{Binding Settings.PlaySoundOnCountdown, Mode=TwoWay}" />
                 <TextBlock Text="Play the WAV file when the countdown time elapses."
                            FontStyle="Italic"
-                           FontSize="10"
-                           Margin="0,0,0,12" />
+                           Margin="0,0,0,16" />
             </StackPanel>
         </TabItem>
 
@@ -281,7 +256,7 @@
                            FontSize="16">
                     Shortcuts
                 </TextBlock>
-                <StackPanel Margin="0,0,0,12">
+                <StackPanel Margin="0,0,0,16">
                     <TextBlock>
                         <Run FontWeight="Bold">Right-click:</Run>
                         Open the context menu</TextBlock>
@@ -306,7 +281,7 @@
                            FontSize="16">
                     Links
                 </TextBlock>
-                <StackPanel Margin="0,0,0,12">
+                <StackPanel Margin="0,0,0,16">
                     <TextBlock>
                         <Hyperlink NavigateUri="https://github.com/danielchalmers/DesktopClock/releases"
                                    RequestNavigate="Hyperlink_RequestNavigate">
@@ -343,7 +318,7 @@
                            FontSize="16">
                     Credits
                 </TextBlock>
-                <StackPanel Margin="0,0,0,12">
+                <StackPanel Margin="0,0,0,16">
                     <TextBlock>
                         <Hyperlink NavigateUri="https://github.com/CommunityToolkit/dotnet"
                                    RequestNavigate="Hyperlink_RequestNavigate">

+ 13 - 17
README.md

@@ -3,11 +3,9 @@
 [![Release](https://img.shields.io/github/release/danielchalmers/DesktopClock?include_prereleases)](https://github.com/danielchalmers/DesktopClock/releases)
 [![License](https://img.shields.io/github/license/danielchalmers/DesktopClock)](LICENSE)
 
-A digital clock for your desktop that stays visible on screen, showing the current date and time, or a countdown.
+A digital clock for your desktop that stays on screen when you need it.
 
-It's fully customizable with options including font, time zone, format, background, color, and even custom sounds.
-
-**Basic Clock:**  
+**Preview:**  
 <img src="https://github.com/danielchalmers/DesktopClock/assets/7112040/6038fa47-3a29-4b74-8f4f-fffeb8af8d0a" width="400" />
 
 **Context Menu:**  
@@ -16,26 +14,24 @@ It's fully customizable with options including font, time zone, format, backgrou
 **Settings - Format:**  
 <img src="https://github.com/user-attachments/assets/a7e07b9f-a927-44e7-b406-1ab18226adfd" width="400" />
 
-## Download
+## 🚀 Download
 
-To get started, go to the [Releases page](https://github.com/danielchalmers/DesktopClock/releases) and find Assets. For example:
+To get started, go to the [Releases page](https://github.com/danielchalmers/DesktopClock/releases) and find Assets:
 
 <img src="https://github.com/user-attachments/assets/d117e992-8d83-4df9-ad69-756d816b700c" width="700" />
 
-Grab an `.msi` for the installer or a `.zip` for the portable version. Most people use x64 but ARM is also available.
-
-## Discover More
-
-Explore my other projects:
+Grab an `.msi` installer or `.zip` portable version. Most people use x64 but ARM is available too.
 
-😊[Journal App](https://github.com/danielchalmers/JournalApp) - Stay on top of your well-being with a versatile journaling app for Android
+## 🌟 Discover More
 
-🔄[Network Monitor](https://github.com/danielchalmers/Network-Monitor) - View live network latency and bandwidth usage on your desktop
+Check out some of my other projects:
 
-📷[TeslaCam Player](https://github.com/danielchalmers/TeslaCam) - Play videos from your Tesla directly on your computer
+- 😊[Journal App](https://github.com/danielchalmers/JournalApp) - Stay on top of your wellness goals with this journaling app for Android
+- 🔄[Network Monitor](https://github.com/danielchalmers/Network-Monitor) - Monitor real-time network performance from your desktop
+- 📷[TeslaCam Player](https://github.com/danielchalmers/TeslaCam) - Watch your Tesla recordings directly on your PC
 
-## Contributions
+## 🤝 Contributions
 
-Got an idea or found a bug? Submit an [issue](https://github.com/danielchalmers/DesktopClock/issues)!
+Have an idea or found a bug? Submit an [issue](https://github.com/danielchalmers/DesktopClock/issues)!
 
-Contributions are welcome! Please try to align with the current formatting and keep features simple if possible.
+Contributions are welcome - please match the project style and keep it clean and intuitive!