当前位置: 首页 > news >正文

C# Avalonia 08 - BindToFont

例子也绑定了自定义类,系统类同理,目前Avalonia不支持绑定结构。

BindToFont.axaml代码

<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local ="using:AvaloniaUI"xmlns:sys="clr-namespace:System;assembly=mscorlib"Height="300" Width="300"x:Class="AvaloniaUI.BindToFont"Title="BindToFont"><!--https://docs.avaloniaui.net/docs/concepts/markupextensions--><Window.Resources><FontFamily x:Key="CustomFont">Calibri</FontFamily></Window.Resources><StackPanel Margin="10" ><TextBlock Margin="5" Text="{x:Static Member=local:BindToFont.MyGuid}"></TextBlock><TextBox Name="input" >Hello Avalonia</TextBox><TextBlock Margin="5" Text="{local:BindableMe {Binding #input.Text}}"></TextBlock><TextBlock Margin="5" Text="{Binding Source={StaticResource CustomFont}, Path=Name}"></TextBlock></StackPanel>
</Window>

BindToFont.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Linq;namespace AvaloniaUI;
public class BindableMe
{private readonly BindingBase first;public BindableMe(BindingBase first){this.first = first;}public object ProvideValue(IServiceProvider serviceProvider){/*var target = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget))!;var targetProperty = target.TargetProperty as AvaloniaProperty;var targetType = targetProperty?.PropertyType;*/var mb = new MultiBinding(){Bindings = new[] { first },Converter = new FuncMultiValueConverter<string, string>(s => $"Total Bindings: {s.Count()}, Text: " + s.ElementAt(0))};return mb;}
}
public partial class BindToFont : Window
{public static string? MyGuid{get; set;} = Guid.NewGuid().ToString();public BindToFont(){InitializeComponent();}
}

运行效果

image

 

http://www.sczhlp.com/news/5926/

相关文章:

  • IOI2025 worldmap的更优做法
  • 洛谷P5707上学迟到
  • 局部注意力机制提升Transformer长序列时间预测
  • 荒原之梦 | 可以用往年的书备考今年的考研数学吗?
  • Windows 安装 RabbitMQ 消息队列超详细步骤(附加详细操作截屏) - Rainbow
  • 打造亿级流量开放平台的架构演进与工程实战
  • 敏宝
  • PCIe x4 八口 USB3.0 扩展卡:图像采集领域的新助力
  • Linux系统mdadm进行raid管理
  • 我爱java
  • batch学习
  • Java 和 Tesseract 实现验证码识别
  • 使用Eclipse Memory Analyzer分析java程序占用内存的情况
  • 用Java 和 Tesseract 实现验证码识别
  • 抓取直播源
  • 【自学嵌入式:51单片机】直流电机驱动(PWM)和呼吸灯
  • ROS2-TF2基础
  • 7.6.1 链接器如何解析多重定义的全局符号
  • Keil MDK 5.39 超详细下载安装流程图解,嵌入式工程师必备
  • Python多通道特征融合的验证码识别系统
  • lyra中的动画接口AnimationLayer使用
  • Java核心类——5.使用EnumMap
  • unreal5学习
  • Niagara
  • minimap
  • debug
  • Blender学习
  • Java集合——5.编写hashCode方法
  • 2025-08-06 模拟赛总结
  • 若依的poi导出 ,数值类型字段设置导出为数值不是文本