1
0
Эх сурвалжийг харах

ControlCatalog: Some fixes and workarounds, so it will not use missing resources

Maksym Katsydan 5 жил өмнө
parent
commit
3d2db41bc8

+ 4 - 4
samples/ControlCatalog/App.xaml

@@ -4,14 +4,14 @@
   <Application.Styles>        
     <StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Default.xaml"/>
     <Style Selector="TextBlock.h1">
-      <Setter Property="FontSize" Value="{DynamicResource FontSizeLarge}"/>
-      <Setter Property="FontWeight" Value="Medium"/>
+      <Setter Property="FontSize" Value="16" />
+      <Setter Property="FontWeight" Value="Medium" />
     </Style>
     <Style Selector="TextBlock.h2">
-      <Setter Property="FontSize" Value="{DynamicResource FontSizeNormal}"/>
+      <Setter Property="FontSize" Value="14" />
     </Style>
     <Style Selector="TextBlock.h3">
-      <Setter Property="FontSize" Value="{DynamicResource FontSizeSmall}"/>
+      <Setter Property="FontSize" Value="10" />
     </Style>
     <StyleInclude Source="/SideBar.xaml"/>
   </Application.Styles>

+ 2 - 2
samples/ControlCatalog/App.xaml.cs

@@ -67,9 +67,9 @@ namespace ControlCatalog
 
         public override void Initialize()
         {
-            AvaloniaXamlLoader.Load(this);
-
             Styles.Insert(0, FluentDark);
+
+            AvaloniaXamlLoader.Load(this);
         }
 
         public override void OnFrameworkInitializationCompleted()

+ 1 - 3
samples/ControlCatalog/MainView.xaml

@@ -1,9 +1,7 @@
 <UserControl xmlns="https://github.com/avaloniaui"
         xmlns:pages="clr-namespace:ControlCatalog.Pages"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-        x:Class="ControlCatalog.MainView"
-        Foreground="{DynamicResource ThemeForegroundBrush}"
-        FontSize="{DynamicResource FontSizeNormal}">
+        x:Class="ControlCatalog.MainView">
   <Grid>
     <Grid.Styles>
         <Style Selector="TextBlock.h2">

+ 12 - 2
samples/ControlCatalog/MainWindow.xaml.cs

@@ -63,8 +63,18 @@ namespace ControlCatalog
             // TODO: iOS does not support dynamically loading assemblies
             // so we must refer to this resource DLL statically. For
             // now I am doing that here. But we need a better solution!!
-            var theme = new Avalonia.Themes.Default.DefaultTheme();
-            theme.TryGetResource("Button", out _);
+            // Note, theme swiching probably will not work in runtime for iOS.
+            if (Application.Current.Styles.Contains(App.FluentDark)
+                || Application.Current.Styles.Contains(App.FluentLight))
+            {
+                var theme = new Avalonia.Themes.Fluent.FluentTheme();
+                theme.TryGetResource("Button", out _);
+            }
+            else
+            {
+                var theme = new Avalonia.Themes.Default.DefaultTheme();
+                theme.TryGetResource("Button", out _);
+            }
             AvaloniaXamlLoader.Load(this);
         }
     }

+ 4 - 0
samples/ControlCatalog/Pages/ButtonPage.xaml

@@ -20,6 +20,10 @@
               <Style.Resources>
                 <SolidColorBrush x:Key="ThemeBorderMidBrush">Red</SolidColorBrush>
                 <SolidColorBrush x:Key="ThemeControlHighBrush">DarkRed</SolidColorBrush>
+                <SolidColorBrush x:Key="ButtonBorderBrush">Red</SolidColorBrush>
+                <SolidColorBrush x:Key="ButtonBackground">DarkRed</SolidColorBrush>
+                <SolidColorBrush x:Key="ButtonBackgroundPointerOver">Red</SolidColorBrush>
+                <SolidColorBrush x:Key="ButtonBackgroundPressed">OrangeRed</SolidColorBrush>
               </Style.Resources>
             </Style>
           </Button.Styles>          

+ 1 - 1
samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml

@@ -43,7 +43,7 @@
       <Button x:Name="scrollToLast">Scroll to Last</Button>
       <Button x:Name="scrollToRandom">Scroll to Random</Button>
     </StackPanel>
-    <Border BorderThickness="1" BorderBrush="{DynamicResource ThemeBorderMidBrush}" Margin="0 0 0 16">
+    <Border BorderThickness="1" BorderBrush="{DynamicResource SystemControlHighlightBaseMediumLowBrush}" Margin="0 0 0 16">
       <ScrollViewer Name="scroller"
                     HorizontalScrollBarVisibility="Auto"
                     VerticalScrollBarVisibility="Auto">

+ 7 - 6
samples/ControlCatalog/Pages/ScreenPage.cs

@@ -29,7 +29,8 @@ namespace ControlCatalog.Pages
             var screens = w.Screens.All;
             var scaling = ((IRenderRoot)w).RenderScaling;
 
-            Pen p = new Pen(Brushes.Black);
+            var drawBrush = Brushes.Green;
+            Pen p = new Pen(drawBrush);
             if (screens != null)
                 foreach (Screen screen in screens)
                 {
@@ -53,19 +54,19 @@ namespace ControlCatalog.Pages
                     };
 
                     text.Text = $"Bounds: {screen.Bounds.Width}:{screen.Bounds.Height}";
-                    context.DrawText(Brushes.Black, boundsRect.Position.WithY(boundsRect.Size.Height), text);
+                    context.DrawText(drawBrush, boundsRect.Position.WithY(boundsRect.Size.Height), text);
                     
                     text.Text = $"WorkArea: {screen.WorkingArea.Width}:{screen.WorkingArea.Height}";
-                    context.DrawText(Brushes.Black, boundsRect.Position.WithY(boundsRect.Size.Height + 20), text);
+                    context.DrawText(drawBrush, boundsRect.Position.WithY(boundsRect.Size.Height + 20), text);
 
                     text.Text = $"Scaling: {screen.PixelDensity * 100}%";
-                    context.DrawText(Brushes.Black, boundsRect.Position.WithY(boundsRect.Size.Height + 40), text);
+                    context.DrawText(drawBrush, boundsRect.Position.WithY(boundsRect.Size.Height + 40), text);
                     
                     text.Text = $"Primary: {screen.Primary}";
-                    context.DrawText(Brushes.Black, boundsRect.Position.WithY(boundsRect.Size.Height + 60), text);
+                    context.DrawText(drawBrush, boundsRect.Position.WithY(boundsRect.Size.Height + 60), text);
                     
                     text.Text = $"Current: {screen.Equals(w.Screens.ScreenFromBounds(new PixelRect(w.Position, PixelSize.FromSize(w.Bounds.Size, scaling))))}";
-                    context.DrawText(Brushes.Black, boundsRect.Position.WithY(boundsRect.Size.Height + 80), text);
+                    context.DrawText(drawBrush, boundsRect.Position.WithY(boundsRect.Size.Height + 80), text);
                 }
 
             context.DrawRectangle(p, new Rect(w.Position.X / 10f + Math.Abs(_leftMost), w.Position.Y / 10, w.Bounds.Width / 10, w.Bounds.Height / 10));

+ 2 - 2
samples/ControlCatalog/Pages/TextBlockPage.xaml

@@ -12,7 +12,7 @@
       <StackPanel.Styles>
         <Style Selector="Border">
           <Setter Property="BorderThickness" Value="1"/>
-          <Setter Property="BorderBrush" Value="{DynamicResource ThemeBorderMidBrush}"/>
+          <Setter Property="BorderBrush" Value="{DynamicResource SystemControlHighlightBaseMediumLowBrush}"/>
           <Setter Property="Padding" Value="2"/>
         </Style>
       </StackPanel.Styles>
@@ -49,7 +49,7 @@
       <StackPanel.Styles>
         <Style Selector="Border">
           <Setter Property="BorderThickness" Value="1"/>
-          <Setter Property="BorderBrush" Value="{DynamicResource ThemeBorderMidBrush}"/>
+          <Setter Property="BorderBrush" Value="{DynamicResource SystemControlHighlightBaseMediumLowBrush}"/>
           <Setter Property="Padding" Value="2"/>
         </Style>
       </StackPanel.Styles>