WPF向Avalonia迁移(三、项目结构)

前提:

Avalonia版本11.0.0

1.配置文件

1.1 添加配置文件
1.2 读取配置文件

添加System.Configuration.ConfigurationManager

复制代码
using Avalonia.Controls;
using System.Configuration;

namespace AvaloniaApplication7.Views
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            // 读取配置项
            var DBOption = ConfigurationManager.AppSettings["DBOption"];
        }
    }
}

2.样式

2.1 添加样式文件至Assets文件夹下
复制代码
<Styles xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
	<Design.PreviewWith>
	</Design.PreviewWith>
	<Style Selector="TextBlock">
		<Setter Property="Foreground" Value="White" />
		<Setter Property="FontSize" Value="16" />
		<Setter Property="FontWeight" Value="Normal"/>
	</Style>
</Styles>
2.2 引用样式

打开App.axaml文件,添加<StyleInclude Source="你要用的样式文件.axaml"/>,添加后该样式在整个应用生效。

复制代码
   <Application.Styles>
       <FluentTheme />
	<StyleInclude Source="/Assets/Styles/CommonStyles.axaml"/>
   </Application.Styles>

3.资源文件

3.1 添加资源文件
复制代码
<ResourceDictionary xmlns="https://github.com/avaloniaui"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
	<SolidColorBrush x:Key="WindowDefaultBackground">#336699</SolidColorBrush>
	<!--Disabled颜色-->
	<Color x:Key="DisabledColor">#545454</Color>
	<Brush x:Key="EditWordColor">#FFFFFA</Brush>
	<Brush x:Key="ComboBoxBackground">#003366</Brush>
	<Brush x:Key="ComboBoxPopupBackground">#003366</Brush>

	<SolidColorBrush x:Key="GridColor1">#003e62</SolidColorBrush>
	<!--表头背景色-->
	<SolidColorBrush x:Key="ColumnHeaderBackground">#666699</SolidColorBrush>
	<!--行背景色-->
	<SolidColorBrush x:Key="RowBackground">#111B59</SolidColorBrush>
	<!--Grid背景色-->
	<Brush x:Key="GridBackground">#06173E</Brush>
	<!--Grid背景色-->
	<Brush x:Key="GridBackground1">#111B59</Brush>
	<SolidColorBrush x:Key="SystemControlBackgroundAltHighBrush">#1f497d</SolidColorBrush>
	<!--Memu的下级Popup背景色-->
	<SolidColorBrush x:Key="MenuFlyoutBackground">#052350</SolidColorBrush>
	<!--默认字体-->
	<FontFamily x:Key="DefaultFontFamily">Microsoft YaHei</FontFamily>
</ResourceDictionary>
3.2 引用资源文件

打开App.axaml文件,添加<MergeResourceInclude Source="你要用的样式文件.axaml"/>,添加后该样式在整个应用生效。

复制代码
<Application.Resources>
	<ResourceDictionary>
		<ResourceDictionary.MergedDictionaries>
			<MergeResourceInclude Source="/Assets/CommonResource.axaml" />
		</ResourceDictionary.MergedDictionaries>
	</ResourceDictionary>
</Application.Resources>
3.3 使用资源
复制代码
<Style Selector="TextBox">
	<Setter Property="Margin" Value="0 -10 0 10" />
	<Setter Property="FontFamily" Value="{StaticResource DefaultFontFamily}" />
</Style>

4. 项目启动页面

打开App.axaml.cs文件

相关推荐
Happy coder2 天前
【avalonia教程】11字符串格式化、avalonia自带绑定值的转换
c#·avalonia
可均可可4 天前
如何在统信系统中将 Avalonia 软件程序打包 Deb 安装包
跨平台·avalonia·deb·deb 打包·统信系统
mysolisoft4 天前
Avalonia+ReactiveUI+Sourcegenerators实现异步命令
avalonia·reactiveui·sourcegenerator
偶尔的鼠标人7 天前
Avalonia中,使用DataTable类型作为DataGrid的ItemSource 数据源
ui·c#·avalonia
Alex Gram10 天前
Avalonia:现代跨平台UI开发的卓越之选
avalonia
mysolisoft10 天前
Avalonia+ReactiveUI实现记录自动更新
c#·avalonia·reactiveui·sourcegenerator
Alex Gram10 天前
Avalonia UI 开发核心注意事项:从理念到部署的避坑指南
avalonia
James.TCG11 天前
Avalonia桌面应用发布到Ubuntu22.04
linux·ubuntu·avalonia
玉面小君1 个月前
从 WPF 到 Avalonia 的迁移系列实战篇6:Trigger、MultiTrigger、DataTrigger 的迁移
wpf·avalonia
SabreWulf20201 个月前
Ubuntu 20.04手动安装.NET 8 SDK
linux·ubuntu·avalonia·.net8