You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin应用资源中能否通过Binding为Style的Setter赋值?

在Xamarin的Application.Resources样式中,能否通过Binding为Setter赋值?

问题场景

开发Xamarin应用时,我在App.xaml的Application.Resources中集中定义控件属性与样式,想要创建一个能根据运行设备(手机/平板)动态设置Label的FontSize属性的Style。为此我创建了AppModel、AppViewModel,并给App类设置了BindingContext,但发现Style的Setter无法通过Binding获取对应值,只有静态值能正常生效。

核心结论

Xamarin里,Application.Resources中的Style的Setter不能直接通过Binding赋值。原因在于Style属于全局资源字典的一部分,它的上下文与页面、控件的BindingContext相互独立,无法直接绑定到ViewModel的属性。

可行解决方案

可以使用Xamarin内置的OnIdiom语法直接在Style的Setter中根据设备类型设置属性值,无需借助Binding,示例代码如下:

<Style x:Key="DynamicOnDeviceLabelStyle" TargetType="Label" >
    <Setter Property="FontSize" Value="{OnIdiom Phone=Small, Tablet=Medium}" />
</Style>

内容的提问来源于stack exchange,提问作者Gabo77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 09:45:27