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

1.6K100

张高兴的 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
  • Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项

    一、设备类是Xamarin重要开发组成部分,下面介绍一下设备类的主要用法: //唤醒打电话 Device.OpenUri(new Uri("tel:180xxxxxxxx")); //打开网页 Device.OpenUri.../guides/xamarin-forms/platform-features/device/ 二、第三方弹窗,模态窗口 先看效果图: ?...lb_version" Text="版本升级" AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds="0.5,74" FontSize...MinimumHeightRequest="160" BackgroundColor="White"> <Label x:Name="lb_content" Text="" FontSize...系列其他推荐  ---- 《Xamarin开发笔记—WebView双项事件调用》 《Xamarin开发笔记—百度在线语音合成》 《Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项》

    743100

    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 密码修改 参考:

    23.9K20

    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

    微软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"> <Run FontSize

    1.3K30
    领券