使用Avalonia在项目中遇到的问题——Avalonia treeview节点前增加一个小图标

先看效果图

 

上代码

复制代码
<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:vm="using:Ava_SplitView.ViewModels"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d" d:DesignWidth="300" d:DesignHeight="500"
             x:Class="Ava_SplitView.Views.TreeView">
    
    <Design.DataContext>
        <vm:TreeViewMode/>
    </Design.DataContext>
    
    <StackPanel>
        <TreeView Items="{Binding Items}"
                  Width="400" Height="480"
                  HorizontalAlignment="Left">
            <TreeView.DataTemplates>
                <TreeDataTemplate ItemsSource="{Binding Subfolders}">
                    <Border Background="Transparent">
                        <StackPanel Orientation="Horizontal">  
                <!--增加图片--> <Image Source="{Binding playSource}" Width="20" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="1 0 0 0"></Image> <TextBlock Width="234" x:Name="content" TextTrimming="CharacterEllipsis" Text="{Binding strNodeText}" Margin="5 0 0 0" VerticalAlignment="Center"> <ToolTip.Tip> <StackPanel> <TextBlock Text="{Binding ElementName=content,Path=Text}"></TextBlock> </StackPanel> </ToolTip.Tip> </TextBlock> </StackPanel> </Border> </TreeDataTemplate> </TreeView.DataTemplates> </TreeView> </StackPanel> </UserControl>
复制代码

 注意Image的Source使用的时Binding 需要一个图片对象

看后台代码

复制代码
public IBitmap UriToBitmap(string uri)
        {
            IBitmap bitmap = null;

            var assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
            bitmap = new Bitmap(assets.Open(new Uri(uri)));
            if (bitmap == null)
            {
                bitmap = new Bitmap(uri);
            }
            return bitmap;
        }
复制代码

 

posted @   乡野小猫  阅读(694)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2021-01-05 JS中关闭新页面时刷新父页面指定方法
点击右上角即可分享
微信分享提示