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)
   {
       // 数据库读取等操作
   }

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

相关推荐
假装我不帅1 个月前
vscode开发avalonia
ide·vscode·编辑器·avalonia
lishuangquan19872 个月前
AvaloniaUI的学习
ui·avalonia
Setli2 个月前
.NET跨平台UI框架Avalonia 11.1重磅发布
.net·跨平台·avalonia
hoyho4 个月前
分享下最近基于Avalonia UI和MAUI写跨平台时间管理工具的体验
.net·maui·avalonia
czwy4 个月前
Avalonia中的线性渐变画刷LinearGradientBrush
wpf·xaml·avalonia
jason成都7 个月前
Avalonia学习(二十六)-桌面系统界面Ribbon
学习·ui·avalonia
jason成都7 个月前
Avalonia学习(二十五)-系统界面
学习·ui·avalonia
jason成都7 个月前
Avalonia学习(二十三)-大屏
学习·ui·avalonia
jason成都8 个月前
Avalonia学习(二十一)-自定义界面演示
学习·ui·avalonia
星火燎猿9 个月前
Avalonia中如何将View事件映射到ViewModel层
avalonia