WPF向Avalonia迁移(四、其他事项)

开发必备

  1. Avalonia项目源代码!!!!!!!!!!没有源代码,你连控件的背景色怎么改都找不着!!

2.下载你所使用的版本!!!!!!!!!0.10.XX与0.11.XX 差很多!!!!要看好自己用的版本号

3.如果你使用了其他的UI库,比如说Semi.Avalonia,下载对应版本的源代码,改样式的时候,先去看你的UI引用是否重写了控件样式

我添加一个下拉框组件

复制代码
	<ComboBox >
		<ComboBoxItem >1</ComboBoxItem>
		<ComboBoxItem >2</ComboBoxItem>
		<ComboBoxItem >3</ComboBoxItem>
		<ComboBoxItem >4</ComboBoxItem>
	</ComboBox>

去Avalonia.Themes.Fluent项目下找到ComboBox.xaml

然后找到对应的颜色设置

在你项目中设置对应的资源项,设置成整个应用的资源项还是当前页的资源项,看你自己的需求,这个应用的资源项设置参考WPF向Avalonia迁移(三、项目结构)

复制代码
<Window.Resources>
	<Brush x:Key="ComboBoxDropDownBackground">#003366</Brush>
</Window.Resources>

测试运行:

此时,如果你使用的是Semi.Avalonia库(DarkTheme),那么你的样式可能是酱婶儿滴:

查看自己的App.axaml,如下我是使用了Semi.Avalonia的Dark主题

复制代码
  <Application.Styles>
      <FluentTheme />
<StyleInclude Source="avares://Semi.Avalonia/Themes/DarkTheme.axaml" />
<StyleInclude Source="/Assets/Styles/CommonStyles.axaml"/>	
  </Application.Styles>

此时,需要去Semi.Avalonia项目中,找到Controls文件夹,找到ComboBox.axaml

重新设置资源项的值:

复制代码
	<Window.Resources>
		<Brush x:Key="ComboBoxPopupBackground">#003366</Brush>
	</Window.Resources>

启动验证:

预览问题:

一个正常的开发情况是这样的,可以看到预览页面,如果你预览页面报错,但是启动正常的话,可能是你在构造函数里写了一些让它不开心的代码 ,比如,读取数据库啥的,**或者没有无参构造函数,**它都会不太开心,如果需要数据库读取等操作,在为Loaded事件添加委托即可。

复制代码
   public MainWindow()
   {
       InitializeComponent();
       Loaded += MainWindow_Loaded;
   }

   private void MainWindow_Loaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
   {
       // 数据库读取等操作
   }

当你的页面只有有参构造的时候,编译项目会提示你:

相关推荐
Happy coder4 天前
【avalonia教程】11字符串格式化、avalonia自带绑定值的转换
c#·avalonia
可均可可6 天前
如何在统信系统中将 Avalonia 软件程序打包 Deb 安装包
跨平台·avalonia·deb·deb 打包·统信系统
mysolisoft6 天前
Avalonia+ReactiveUI+Sourcegenerators实现异步命令
avalonia·reactiveui·sourcegenerator
偶尔的鼠标人9 天前
Avalonia中,使用DataTable类型作为DataGrid的ItemSource 数据源
ui·c#·avalonia
Alex Gram12 天前
Avalonia:现代跨平台UI开发的卓越之选
avalonia
mysolisoft12 天前
Avalonia+ReactiveUI实现记录自动更新
c#·avalonia·reactiveui·sourcegenerator
Alex Gram12 天前
Avalonia UI 开发核心注意事项:从理念到部署的避坑指南
avalonia
James.TCG13 天前
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