首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

绑定FontSize不能使用Xamarin表单?

绑定FontSize不能使用Xamarin表单是因为在Xamarin.Forms中,FontSize属性不支持直接的数据绑定。这是因为FontSize属性是一个结构体,而不是一个可绑定的属性。

要实现动态绑定字体大小的功能,可以通过创建一个绑定器来实现。下面是一个示例代码:

  1. 首先,创建一个名为FontSizeBindingBehavior的类,继承自Behavior<View>。这个类用于实现绑定的行为。
代码语言:txt
复制
public class FontSizeBindingBehavior : Behavior<View>
{
    public static readonly BindableProperty FontSizeProperty = BindableProperty.Create(
        nameof(FontSize), typeof(double), typeof(FontSizeBindingBehavior), default(double),
        propertyChanged: OnFontSizePropertyChanged);

    public double FontSize
    {
        get => (double)GetValue(FontSizeProperty);
        set => SetValue(FontSizeProperty, value);
    }

    protected override void OnAttachedTo(View bindable)
    {
        base.OnAttachedTo(bindable);
        bindable.BindingContextChanged += OnBindingContextChanged;
        SetFontSize(bindable);
    }

    protected override void OnDetachingFrom(View bindable)
    {
        bindable.BindingContextChanged -= OnBindingContextChanged;
        base.OnDetachingFrom(bindable);
    }

    private void OnBindingContextChanged(object sender, EventArgs e)
    {
        if (sender is View view)
        {
            SetFontSize(view);
        }
    }

    private static void OnFontSizePropertyChanged(BindableObject bindable, object oldValue, object newValue)
    {
        if (bindable is View view && newValue is double fontSize)
        {
            view.SetValue(View.FontSizeProperty, fontSize);
        }
    }

    private void SetFontSize(View view)
    {
        view.SetValue(View.FontSizeProperty, FontSize);
    }
}
  1. 然后,在XAML中使用这个绑定器,将其附加到需要动态绑定字体大小的视图上。
代码语言:txt
复制
<Label Text="Hello, Xamarin.Forms!">
    <Label.Behaviors>
        <local:FontSizeBindingBehavior FontSize="{Binding YourFontSize}" />
    </Label.Behaviors>
</Label>

在这个示例中,YourFontSize是一个在视图的绑定上下文中定义的属性,用于存储字体大小的值。

这样,通过自定义的绑定器,就能够实现在Xamarin.Forms中绑定字体大小的功能了。

请注意,以上示例中的local是一个命名空间别名,需要根据实际情况进行调整。另外,这个示例只是提供了一种实现动态绑定字体大小的方法,具体使用场景和推荐的腾讯云相关产品与产品介绍链接需要根据具体情况进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码

今天我们讲讲Xamarin中的MVVM双向绑定,嗯..需要有一定的MVVM基础.,具体什么是MVVM - -,请百度,我就不多讲了 效果如下: ?...> xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com...> xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com...先解释一下,为什么会有命令绑定这个东西,因为我们使用双向绑定的时候,页面的点击事件,并不能直接调用到ViewModel,所以就衍生了一个叫命令绑定的东西.来和我们控件的各种事件相关联....今天主要学习了Xamarin中的MVVM双向绑定和命令绑定, 需要双向绑定的类,需要继承INotifyPropertyChanged,需要绑定的命令,需要继承:ICommand 最后,列一下可以使用命令绑定的控件

1.7K100

张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )

所谓 UWP 样式的汉堡菜单,我曾在“张高兴的 UWP 开发笔记:汉堡菜单进阶”里说过,也就是使用 Segoe MDL2 Assets 字体作为左侧 Icon,并且左侧使用填充颜色的矩形用来表示 ListView...但怎样通过 Xamarin.Forms ,将这一样式的汉堡菜单带入到 Android 与 iOS 中呢?...本示例是使用 Visual Studio 2017 创建的 Cross-Platform 项目,项目名为”HamburgerMenuDemo“,模板为空白项目。...由于要实现双向绑定,还要实现接口 INotifyPropertyChanged。要注意的是,Color 类型为 Xamarin.Forms 中的。...字体设置   弄了好久,Xamarin 太坑了,plist 的编辑器很不和谐。。。

4.5K100
  • C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码

    虽然官方推荐用共享类库创建新的类库..然而我这个Demo还是使用的可移植.. 嗯..解释一下 为什么暂时没用共享类库.....有些小BUG 可能是为了迎合其他类型的项目..所以在共享类库里创建的Page并不能很好的结合 - - 类似如下: ?   正常的应该是这样 ?...嗯..今天主要学习Xamarin中的各种原装控件 比较多..你们可以不看..或者随便看看..我会把这些控件的相关属性都翻译一下,列出来,就当这是一个控件的查询字典吧.. 效果如下: ?...FontSize 获取或设置按钮文本的字体大小。 Image 获取或设置按钮中显示在文字旁边的图像。这是一个可绑定的属性。 Text 获取或设置显示为按钮内容的文本。这是一个可绑定的属性。...FontSize 获取编辑器的字体大小。 Text 获取或设置显示的文本。这是一个可绑定的属性。 TextColor 获取或设置文本颜色。

    1.8K90

    笔记 | Xamarin

    引言 文件读写 参考: 使用 Xamarin.Android 对外部存储进行的文件访问 - Xamarin | Microsoft Docs Xamarin 中的文件系统访问 - Xamarin | Microsoft...学习系列之极光消息推送(示例代码)_136.la 极光推送 - Android SDK 集成指南 - 极光文档 Xamarin 使用极光推送 详细教程 - 尚码园 绑定 .JAR - Xamarin |...Microsoft Docs xamarin使用极光推送JPush (安卓)_初级打字员的博客-CSDN博客 Xamarin.Forms Android真机使用极光推送JPush - 知乎 Android...Forms 建立可以绑定属性的方法 ~ 少爷的博客 | 大专栏 HTTP Listener 参考: 1iveowl/Simple-Http-Listener-PCL:Xamarin Forms 的简单...解决: ProGuard 不能与 d8 一起使用,要么 使用 ProGuard,就只能换 d8 为 dx, 或者不用 ProGuard,而是 使用 r8 与 d8 keystore 密码修改 参考:

    24K20

    鸿蒙开发实战案例:编辑收货地址案例

    介绍本示例多用于表单填写场景:其中通过使用TextPicker滑动选择文本内容组件实现三级联动选择省市区,并回填到输入框。效果图预览使用说明点击编辑收货地址案例。...点击底部的保存按钮时,表单会从上到下逐个验证,例如当用户同时未输入收件人和手机号时,会优先弹窗提示"姓名不能为空",当收件人填写完成,手机号没填时,点击保存,会弹窗提示"手机号不能为空",以此类推直到收件人...实现思路场景:通过使用TextPicker滑动选择文本内容组件实现三级联动选择省市区,并回填到输入框。...,由于半模态必须绑定组件, * 此处绑定TextInput组件配合TextPicker作为半模态展示。.../** * 保存时,校验表单从上到下每项必填的方法 */validForm(): boolean { if (!

    7020

    Succinctly 中文系列教程(三)20220109 更新

    八、整个世界的导航 九、纸牌屋 十、数据项的表单 十一、组件集的剩余部分 十二、Bootstrap 的蝙蝠侠实用腰带 十三、最后的话 Succinctly Kademlia 协议教程 一、引言 二、...四、调试器可视化工具和跟踪监听器 五、XAML 调试 六、用户界面性能分析 七、应用性能分析 Succinctly Xamarin.Forms 教程 零、简介 一、开始学习 Xamarin.Forms...二、平台间代码共享 三、使用 XAML 构建用户界面 四、使用布局组织 UI 五、Xamarin.Forms 常用控件 六、页面和导航 七、资源和数据绑定 八、访问平台特定的 API 九、管理应用生命周期...十、实用资源 Succinctly 面向 MacOS 的 Xamarin.Forms 教程 零、简介 一、开始学习 Xamarin.Forms 二、跨平台共享代码 三、使用 XAML 构建用户界面...四、实用布局组织 UI 五、Xamarin.Forms 常用控件 六、页面和导航 七、资源和数据绑定 八、访问平台特定的 API 九、管理应用生命周期 十、实用资源 下载 Docker docker pull

    18.4K20

    C#一分钟浅谈:Xamarin 移动应用开发

    Xamarin 是一个基于 .NET 平台的跨平台移动应用开发框架,允许开发者使用 C# 语言编写一次代码,即可在 iOS、Android 和 Windows Phone 上运行。...Xamarin 是一个跨平台的移动开发工具,它允许开发者使用 C# 语言和 .NET 框架来构建原生移动应用。Xamarin 主要包括以下几个部分: Xamarin.iOS:用于开发 iOS 应用。..., "OK"); } } 3.2 数据绑定 3.2.1 基本数据绑定 Xamarin.Forms 支持数据绑定,可以将 UI 控件与数据源绑定,实现数据的自动更新。...3.2.2 易错点 绑定路径错误:绑定路径错误会导致数据无法正确显示。 未实现 INotifyPropertyChanged 接口:导致数据变化时 UI 不更新。...; } } 3.3 异步编程 3.3.1 基本异步编程 Xamarin 支持使用 async 和 await 关键字进行异步编程,避免阻塞主线程。

    38910

    C#一分钟浅谈:Xamarin 移动应用开发

    Xamarin 是一个基于 .NET 平台的跨平台移动应用开发框架,允许开发者使用 C# 语言编写一次代码,即可在 iOS、Android 和 Windows Phone 上运行。...Xamarin 是一个跨平台的移动开发工具,它允许开发者使用 C# 语言和 .NET 框架来构建原生移动应用。Xamarin 主要包括以下几个部分:Xamarin.iOS:用于开发 iOS 应用。..., "OK"); }}3.2 数据绑定3.2.1 基本数据绑定Xamarin.Forms 支持数据绑定,可以将 UI 控件与数据源绑定,实现数据的自动更新。...3.2.2 易错点绑定路径错误:绑定路径错误会导致数据无法正确显示。未实现 INotifyPropertyChanged 接口:导致数据变化时 UI 不更新。...; }}3.3 异步编程3.3.1 基本异步编程Xamarin 支持使用 async 和 await 关键字进行异步编程,避免阻塞主线程。

    15010

    微软XAML Studio - WPF, UWP, Xamarin等技术开发者的福音

    最近在继续倒腾WPF的项目,继续使用Caliburn.Micro和Xceed来堆代码。每次调试xaml上的binding,都有种要疯的赶脚。...Store 进行安装,温馨提醒一下这个软件只能在Windows 10及其以上版本的PC和Surface等上使用。...调试数据绑定 调试功能允许你查看哪些数据绑定实际成功。 打开调试模式后,您将能够看到当前绑定以及可用绑定的历史记录。 伟大的开始 我对这个工具的诞生感到很兴奋。...我很乐意看到这里的绑定调试功能,不仅仅是因为这里使用了简洁的JSON数据,而是它现在就可以提供非常棒的绑定调试功能,而我知道目前的Visual Studio中还没提供这种功能。...markup-compatibility/2006" mc:Ignorable="d"> FontSize

    1.3K30
    领券