深入浅出Avalonia

1.ResourceDictionary文件报错“Unable to cast object of type ‘Avalonia.Controls.ResourceDictionary’ to type ‘Avalonia.Controls.Control’”

解决方法:因为这些文件不能被转换成控件,所以不能被预览,这时候按下功能键F7,切换到“XAML View”,就能消除这个报错。

2.应用阿里巴巴IconFont

2.1. 应用

2.1.1 首先下载iconfont文件,并添加到项目
在这里插入图片描述
2.1.2在App.axaml文件中引入字体

  <Application.Resources>
        <ResourceDictionary>
            <FontFamily x:Key="IconFont">/Assets/Fonts/#iconfont</FontFamily>
        </ResourceDictionary>
    </Application.Resources>

2.1.3应用

<TextBlock
                FontFamily="{StaticResource IconFont}"
                FontSize="30"
                Foreground="white"
                Text="&#xe807;" />

2.2 坑

如果在样式文件中定义了Textblock的样式,像这样

<Style Selector="TextBlock.Manual">
        <Setter Property="Text" Value="&#xe807;" />
</Style>

并在App.axaml文件中引入

<Application.Styles>
        <StyleInclude Source="/Styles/WpTextBlock.axaml" />
        <FluentTheme Mode="Dark" />
</Application.Styles>

像下面这样应用是没问题的

<TextBlock
                Classes="Manual"
                FontFamily="{StaticResource IconFont}"
                FontSize="30"
                Foreground="white" />

**但是,未使用样式文件中样式的其他TextBlock将不会显示。就算像下面这样写也不会显示不是不会显示,是会被覆盖掉!!! **

<TextBlock
                FontFamily="{StaticResource IconFont}"
                FontSize="30"
                Foreground="white"
                Text="&#xe807;" />

不过,Label可以显示

3.深入浅出Avalonia.Xaml.Behaviors

avalonia ui控件事件转命令包
项目地址
Nuget包地址
安装指令:

dotnet add package Avalonia.Xaml.Behaviors --version 11.0.0-preview4

3.1应用实例:

一、前端:

首先引入命名空间

xmlns:i="clr-namespace:Avalonia.Xaml.Interactivity;assembly=Avalonia.Xaml.Interactivity"
xmlns:ia="clr-namespace:Avalonia.Xaml.Interactions.Core;assembly=Avalonia.Xaml.Interactions"

将事件转为命令

            <TreeView x:Name="Navigation"
                      Classes="navigation">
                <TreeViewItem Classes="navigation"
                              Header="选项1">
                    <TreeViewItem Classes="navigation"
                                  Header="选项12" />
                    <TreeViewItem Classes="navigation"
                                  Header="选项13" />
                </TreeViewItem>
                <TreeViewItem Classes="navigation"
                              Header="选项2" />
                <TreeViewItem Classes="navigation"
                              Header="选项3" />
                <i:Interaction.Behaviors>
                    <ia:EventTriggerBehavior EventName="PointerReleased">
                        <ia:InvokeCommandAction Command="{Binding NavigationItemClickCmd}"
                                                CommandParameter="{Binding RelativeSource={RelativeSource Mode=Self}, Path=SelectedItem}" />

                        <!--<ia:InvokeCommandAction Command="{Binding NavigationItemClickCmd}"
                                            CommandParameter="{Binding ElementName=Navigation,Path=SelectedItem}" />这样也是ok的
					-->
                    </ia:EventTriggerBehavior>
                </i:Interaction.Behaviors>
            </TreeView>
二、后端
 private ICommand _navigationItemClickCmd;

        public ICommand NavigationItemClickCmd
        {
            get
            {
                _navigationItemClickCmd = ReactiveCommand.Create<TreeViewItem>(tvi =>
                {
                    if (tvi is not null)
                    {
                        tvi.IsExpanded = !tvi.IsExpanded;
                    }
                });
                return _navigationItemClickCmd;
            }
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Avalonia是一个**跨平台的UI框架,用于创建桌面应用程序**。 以下是一些关于Avalonia的基本信息和学习资源: 1. **什么是Avalonia?**:Avalonia是一个基于WPF XAML的开源UI框架,它允许开发者使用.NET构建跨平台的桌面应用程序。Avalonia支持多种操作系统,包括Windows、Linux和macOS。 2. **准备工作**:在开始使用Avalonia之前,你需要安装相应的开发环境,并配置项目。这通常包括安装.NET SDK和Avalonia工具包。 3. **创建第一个Avalonia应用程序**:你可以通过官方文档或相关教程来创建你的第一个Avalonia应用,这将帮助你理解基本的应用程序结构和开发流程。 4. **XAML基础**:XAML是一种用于定义用户界面的语言,你可以学习如何使用XAML来创建界面布局和实现数据绑定。 5. **控件和样式**:Avalonia提供了丰富的控件库,你可以学习如何使用这些控件以及如何通过样式和模板来自定义它们的外观。 6. **MVVM模式**:MVVM(Model-View-ViewModel)是一种设计模式,用于分离应用程序的业务逻辑和界面表示。学习MVVM将有助于你构建可维护和可测试的应用程序。 7. **导航和多窗口**:了解如何在Avalonia中进行窗口导航和管理多个窗口,这对于构建复杂的桌面应用程序非常重要。 8. **打包和发布应用程序**:最后,你需要学习如何将你的Avalonia应用程序打包和发布,以便用户可以在他们的计算机上安装和使用你的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值