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

如何在XAML中仅为特定平台给控件添加Behaviour?

实现方案

针对Xamarin中仅在UWP平台生效Behavior/Effect的需求,可通过OnPlatform直接适配集合类元素,以下是两种常用实现方式:

方案1:直接在集合内声明OnPlatform

单Behavior场景

直接在Behaviors集合内嵌入OnPlatform,仅在UWP平台解析出对应的行为实例:

<Entry>
    <Entry.Behaviors>
        <!-- x:TypeArguments填写你要注入的元素类型,Behavior场景填Behavior -->
        <OnPlatform x:TypeArguments="Behavior">
            <On Platform="UWP">
                <!-- 替换为你自己实现的Behavior -->
                <local:YourCustomUwpBehaviour />
            </On>
            <!-- 其余平台不写对应节点,就不会注入任何行为 -->
        </OnPlatform>
    </Entry.Behaviors>
</Entry>

多Behavior场景

如果需要在UWP下同时添加多个行为,直接嵌套BehaviorCollection即可:

<Entry>
    <Entry.Behaviors>
        <OnPlatform x:TypeArguments="BehaviorCollection">
            <On Platform="UWP">
                <BehaviorCollection>
                    <local:FirstUwpBehaviour />
                    <local:SecondUwpBehaviour />
                </BehaviorCollection>
            </On>
        </OnPlatform>
    </Entry.Behaviors>
</Entry>

Effect场景

和Behavior的用法完全一致,仅需修改x:TypeArguments为Effect:

<Label>
    <Label.Effects>
        <OnPlatform x:TypeArguments="Effect">
            <On Platform="UWP">
                <!-- 替换为你自己实现的Effect -->
                <local:YourCustomUwpEffect />
            </On>
        </OnPlatform>
    </Label.Effects>
</Label>

方案2:通过资源字典复用平台特定行为

如果同一个行为需要在多个控件上使用,可以将其定义为资源,减少重复代码:

<!-- 在页面/应用级资源中定义 -->
<ContentPage.Resources>
    <OnPlatform x:Key="UwpOnlyBehaviour" x:TypeArguments="Behavior">
        <On Platform="UWP">
            <local:YourCustomUwpBehaviour />
        </On>
    </OnPlatform>
</ContentPage.Resources>

<!-- 控件处直接引用资源即可 -->
<Entry Behaviors="{StaticResource UwpOnlyBehaviour}" />
<Editor Behaviors="{StaticResource UwpOnlyBehaviour}" />

注意事项

  • x:TypeArguments的参数必须和注入的元素类型严格匹配,否则会触发编译错误
  • 若需要多平台添加不同的行为/效果,仅需新增对应平台的<On Platform="xxx">节点即可,不需要的平台留空就不会注入任何内容
  • 该方法兼容所有Xamarin.Forms正式版本,无需额外引入第三方库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:04