Browse Source

Merge pull request #9054 from workgroupengineering/fixes/ControlCatalog

fix: Avoid Cast exception on Single View Application
disbar
Max Katz 4 years ago
committed by GitHub
parent
commit
9f0ef49204
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      samples/ControlCatalog/MainView.xaml.cs
  2. 9
      samples/ControlCatalog/Pages/ScreenPage.cs

5
samples/ControlCatalog/MainView.xaml.cs

@ -2,10 +2,10 @@ using System;
using System.Collections; using System.Collections;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.Media; using Avalonia.Media;
using Avalonia.Media.Immutable; using Avalonia.Media.Immutable;
using Avalonia.Platform;
using Avalonia.Themes.Fluent; using Avalonia.Themes.Fluent;
using ControlCatalog.Models; using ControlCatalog.Models;
using ControlCatalog.Pages; using ControlCatalog.Pages;
@ -20,7 +20,7 @@ namespace ControlCatalog
var sideBar = this.Get<TabControl>("Sidebar"); var sideBar = this.Get<TabControl>("Sidebar");
if (AvaloniaLocator.Current?.GetService<IRuntimePlatform>()?.GetRuntimeInfo().IsDesktop == true) if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime)
{ {
var tabItems = (sideBar.Items as IList); var tabItems = (sideBar.Items as IList);
tabItems?.Add(new TabItem() tabItems?.Add(new TabItem()
@ -28,7 +28,6 @@ namespace ControlCatalog
Header = "Screens", Header = "Screens",
Content = new ScreenPage() Content = new ScreenPage()
}); });
} }
var themes = this.Get<ComboBox>("Themes"); var themes = this.Get<ComboBox>("Themes");

9
samples/ControlCatalog/Pages/ScreenPage.cs

@ -2,7 +2,6 @@ using System;
using System.Globalization; using System.Globalization;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Media; using Avalonia.Media;
using Avalonia.Platform; using Avalonia.Platform;
using Avalonia.Rendering; using Avalonia.Rendering;
@ -18,8 +17,10 @@ namespace ControlCatalog.Pages
protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
{ {
base.OnAttachedToVisualTree(e); base.OnAttachedToVisualTree(e);
Window w = (Window)VisualRoot!; if(VisualRoot is Window w)
w.PositionChanged += (sender, args) => InvalidateVisual(); {
w.PositionChanged += (_, _) => InvalidateVisual();
}
} }
public override void Render(DrawingContext context) public override void Render(DrawingContext context)
@ -27,7 +28,7 @@ namespace ControlCatalog.Pages
base.Render(context); base.Render(context);
if (!(VisualRoot is Window w)) if (!(VisualRoot is Window w))
{ {
return; return;
} }
var screens = w.Screens.All; var screens = w.Screens.All;
var scaling = ((IRenderRoot)w).RenderScaling; var scaling = ((IRenderRoot)w).RenderScaling;

Loading…
Cancel
Save