fix: support WASM.
This commit is contained in:
@@ -16,7 +16,7 @@ public partial class App : Application
|
|||||||
{
|
{
|
||||||
if (ApplicationLifetime is ISingleViewApplicationLifetime single)
|
if (ApplicationLifetime is ISingleViewApplicationLifetime single)
|
||||||
{
|
{
|
||||||
single.MainView = new MainWindow();
|
single.MainView = new MainView();
|
||||||
}
|
}
|
||||||
base.OnFrameworkInitializationCompleted();
|
base.OnFrameworkInitializationCompleted();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public partial class App : Application
|
|||||||
{
|
{
|
||||||
if (ApplicationLifetime is ISingleViewApplicationLifetime single)
|
if (ApplicationLifetime is ISingleViewApplicationLifetime single)
|
||||||
{
|
{
|
||||||
single.MainView = new MainWindow();
|
single.MainView = new MainView();
|
||||||
}
|
}
|
||||||
base.OnFrameworkInitializationCompleted();
|
base.OnFrameworkInitializationCompleted();
|
||||||
}
|
}
|
||||||
|
|||||||
85
demo/Ursa.Demo/Views/MainView.axaml
Normal file
85
demo/Ursa.Demo/Views/MainView.axaml
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<UserControl
|
||||||
|
x:Class="Ursa.Demo.Views.MainView"
|
||||||
|
xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:converters="clr-namespace:Ursa.Demo.Converters"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:u="https://irihi.tech/ursa"
|
||||||
|
xmlns:vm="using:Ursa.Demo.ViewModels"
|
||||||
|
d:DesignHeight="450"
|
||||||
|
d:DesignWidth="800"
|
||||||
|
x:CompileBindings="True"
|
||||||
|
x:DataType="vm:MainWindowViewModel"
|
||||||
|
mc:Ignorable="d">
|
||||||
|
|
||||||
|
<Design.DataContext>
|
||||||
|
<vm:MainWindowViewModel />
|
||||||
|
</Design.DataContext>
|
||||||
|
|
||||||
|
<Grid ColumnDefinitions="Auto, *" RowDefinitions="Auto, *">
|
||||||
|
<Border
|
||||||
|
Grid.RowSpan="2"
|
||||||
|
Padding="8,4"
|
||||||
|
VerticalAlignment="Stretch"
|
||||||
|
Theme="{DynamicResource CardBorder}">
|
||||||
|
<u:NavigationMenu ItemsSource="{Binding Menus.MenuItems}" ShowCollapseButton="True">
|
||||||
|
<u:NavigationMenu.Header>
|
||||||
|
<TextBlock
|
||||||
|
Classes="H4"
|
||||||
|
Text="Ursa"
|
||||||
|
Theme="{DynamicResource TitleTextBlock}" />
|
||||||
|
</u:NavigationMenu.Header>
|
||||||
|
<u:NavigationMenu.Icon>
|
||||||
|
<Image
|
||||||
|
Width="48"
|
||||||
|
Height="48"
|
||||||
|
RenderOptions.BitmapInterpolationMode="HighQuality"
|
||||||
|
Source="../Assets/Ursa.ico" />
|
||||||
|
</u:NavigationMenu.Icon>
|
||||||
|
<u:NavigationMenu.ItemTemplate>
|
||||||
|
<converters:MenuDataTemplateSelector>
|
||||||
|
<converters:MenuDataTemplateSelector.MenuTemplate>
|
||||||
|
<DataTemplate DataType="vm:MenuItemViewModel">
|
||||||
|
<u:NavigationMenuItem
|
||||||
|
Command="{Binding ActivateCommand}"
|
||||||
|
Header="{Binding MenuHeader}"
|
||||||
|
ItemsSource="{Binding Children}">
|
||||||
|
<u:NavigationMenuItem.Icon>
|
||||||
|
<Border
|
||||||
|
Width="10"
|
||||||
|
Height="10"
|
||||||
|
Background="{DynamicResource SemiBlue6}"
|
||||||
|
CornerRadius="3" />
|
||||||
|
</u:NavigationMenuItem.Icon>
|
||||||
|
</u:NavigationMenuItem>
|
||||||
|
</DataTemplate>
|
||||||
|
</converters:MenuDataTemplateSelector.MenuTemplate>
|
||||||
|
<converters:MenuDataTemplateSelector.SeparatorTemplate>
|
||||||
|
<DataTemplate DataType="vm:MenuItemViewModel">
|
||||||
|
<u:NavigationMenuSeparator Header="{Binding MenuHeader}" />
|
||||||
|
</DataTemplate>
|
||||||
|
</converters:MenuDataTemplateSelector.SeparatorTemplate>
|
||||||
|
</converters:MenuDataTemplateSelector>
|
||||||
|
</u:NavigationMenu.ItemTemplate>
|
||||||
|
</u:NavigationMenu>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<ToggleButton
|
||||||
|
Grid.Row="0"
|
||||||
|
Grid.Column="1"
|
||||||
|
HorizontalAlignment="Right"
|
||||||
|
Content="Update Theme"
|
||||||
|
IsCheckedChanged="ToggleButton_OnIsCheckedChanged" />
|
||||||
|
<ContentControl
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Margin="12"
|
||||||
|
Content="{Binding Content}">
|
||||||
|
<ContentControl.ContentTemplate>
|
||||||
|
<converters:ViewLocator />
|
||||||
|
</ContentControl.ContentTemplate>
|
||||||
|
</ContentControl>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</UserControl>
|
||||||
24
demo/Ursa.Demo/Views/MainView.axaml.cs
Normal file
24
demo/Ursa.Demo/Views/MainView.axaml.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Interactivity;
|
||||||
|
using Avalonia.Styling;
|
||||||
|
|
||||||
|
namespace Ursa.Demo.Views;
|
||||||
|
|
||||||
|
public partial class MainView : UserControl
|
||||||
|
{
|
||||||
|
public MainView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleButton_OnIsCheckedChanged(object? sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
var app = Application.Current;
|
||||||
|
if (app is not null)
|
||||||
|
{
|
||||||
|
var theme = app.ActualThemeVariant;
|
||||||
|
app.RequestedThemeVariant = theme == ThemeVariant.Dark ? ThemeVariant.Light : ThemeVariant.Dark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,87 +2,13 @@
|
|||||||
x:Class="Ursa.Demo.Views.MainWindow"
|
x:Class="Ursa.Demo.Views.MainWindow"
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="clr-namespace:Ursa.Demo.Converters"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:pages="clr-namespace:Ursa.Demo.Pages"
|
xmlns:views="clr-namespace:Ursa.Demo.Views"
|
||||||
xmlns:u="https://irihi.tech/ursa"
|
|
||||||
xmlns:vm="using:Ursa.Demo.ViewModels"
|
|
||||||
Title="Ursa.Demo"
|
Title="Ursa.Demo"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="vm:MainWindowViewModel"
|
|
||||||
Icon="/Assets/Ursa.ico"
|
Icon="/Assets/Ursa.ico"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
|
<views:MainView />
|
||||||
<Design.DataContext>
|
|
||||||
<vm:MainWindowViewModel />
|
|
||||||
</Design.DataContext>
|
|
||||||
|
|
||||||
<Grid ColumnDefinitions="Auto, *" RowDefinitions="Auto, *">
|
|
||||||
<Border
|
|
||||||
Grid.RowSpan="2"
|
|
||||||
Padding="8,4"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
Theme="{DynamicResource CardBorder}">
|
|
||||||
<u:NavigationMenu ItemsSource="{Binding Menus.MenuItems}" ShowCollapseButton="True">
|
|
||||||
<u:NavigationMenu.Header>
|
|
||||||
<TextBlock
|
|
||||||
Classes="H4"
|
|
||||||
Text="Ursa"
|
|
||||||
Theme="{DynamicResource TitleTextBlock}" />
|
|
||||||
</u:NavigationMenu.Header>
|
|
||||||
<u:NavigationMenu.Icon>
|
|
||||||
<Image
|
|
||||||
Width="48"
|
|
||||||
Height="48"
|
|
||||||
RenderOptions.BitmapInterpolationMode="HighQuality"
|
|
||||||
Source="../Assets/Ursa.ico" />
|
|
||||||
</u:NavigationMenu.Icon>
|
|
||||||
<u:NavigationMenu.ItemTemplate>
|
|
||||||
<converters:MenuDataTemplateSelector>
|
|
||||||
<converters:MenuDataTemplateSelector.MenuTemplate>
|
|
||||||
<DataTemplate DataType="vm:MenuItemViewModel">
|
|
||||||
<u:NavigationMenuItem
|
|
||||||
Command="{Binding ActivateCommand}"
|
|
||||||
Header="{Binding MenuHeader}"
|
|
||||||
ItemsSource="{Binding Children}">
|
|
||||||
<u:NavigationMenuItem.Icon>
|
|
||||||
<Border
|
|
||||||
Width="10"
|
|
||||||
Height="10"
|
|
||||||
Background="{DynamicResource SemiBlue6}"
|
|
||||||
CornerRadius="3" />
|
|
||||||
</u:NavigationMenuItem.Icon>
|
|
||||||
</u:NavigationMenuItem>
|
|
||||||
</DataTemplate>
|
|
||||||
</converters:MenuDataTemplateSelector.MenuTemplate>
|
|
||||||
<converters:MenuDataTemplateSelector.SeparatorTemplate>
|
|
||||||
<DataTemplate DataType="vm:MenuItemViewModel">
|
|
||||||
<u:NavigationMenuSeparator Header="{Binding MenuHeader}" />
|
|
||||||
</DataTemplate>
|
|
||||||
</converters:MenuDataTemplateSelector.SeparatorTemplate>
|
|
||||||
</converters:MenuDataTemplateSelector>
|
|
||||||
</u:NavigationMenu.ItemTemplate>
|
|
||||||
</u:NavigationMenu>
|
|
||||||
</Border>
|
|
||||||
|
|
||||||
<ToggleButton
|
|
||||||
Grid.Row="0"
|
|
||||||
Grid.Column="1"
|
|
||||||
HorizontalAlignment="Right"
|
|
||||||
Content="Update Theme"
|
|
||||||
IsCheckedChanged="ToggleButton_OnIsCheckedChanged" />
|
|
||||||
<ContentControl
|
|
||||||
Grid.Row="1"
|
|
||||||
Grid.Column="1"
|
|
||||||
Margin="12"
|
|
||||||
Content="{Binding Content}">
|
|
||||||
<ContentControl.ContentTemplate>
|
|
||||||
<converters:ViewLocator />
|
|
||||||
</ContentControl.ContentTemplate>
|
|
||||||
</ContentControl>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</Window>
|
</Window>
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Interactivity;
|
|
||||||
using Avalonia.Styling;
|
|
||||||
|
|
||||||
namespace Ursa.Demo.Views;
|
namespace Ursa.Demo.Views;
|
||||||
|
|
||||||
@@ -11,14 +8,4 @@ public partial class MainWindow : Window
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ToggleButton_OnIsCheckedChanged(object? sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
var app = Application.Current;
|
|
||||||
if (app is not null)
|
|
||||||
{
|
|
||||||
var theme = app.ActualThemeVariant;
|
|
||||||
app.RequestedThemeVariant = theme == ThemeVariant.Dark ? ThemeVariant.Light : ThemeVariant.Dark;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user