Xamarin.Forms.Picker 内容在 UWP 中重复

Posted

技术标签:

【中文标题】Xamarin.Forms.Picker 内容在 UWP 中重复【英文标题】:Xamarin.Forms.Picker contents are duplicated in UWP 【发布时间】:2020-10-23 04:17:31 【问题描述】:

Xamarin.Forms.Picker 控件仅在我们使用手指触摸 Picker 时才会复制内容。它与鼠标指针完美配合。

因此它创建了一个无限滚动,其中包含重复的项目。

如果您有任何 Windows 触控设备,您可能会遇到此问题。我认为这是一个长期存在的问题,但我找不到任何解决方案。

如果您对解决问题有任何想法,请建议我?

【问题讨论】:

“这是一个长期存在的问题” - XF github 中是否已经有针对它的错误报告?如果没有,你举报了吗? @Jason 几年前我在 Native ComboBox UWP 中就注意到了它,但后来我真的没有使用它的目的。现在我也可以在 Picker 控件中重现此问题。没有针对此问题的错误报告。 【参考方案1】:

我通过将 ComboBox ItemPanel 从 CarouselControl 更改为 StackPanel 找到了解决此问题的方法。默认情况下,ComboBox 使用 CarouselControl 在触摸模式下可视化循环行为。因此,通过将 ComboBox ItemPanel 的模板更改为 StackPanel 为我解决了这个问题。

只需将以下代码放在 App.xaml 中

<Application.Resources>
    <Style TargetType="ComboBox">
        <Style.Setters>
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Vertical"/>
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
        </Style.Setters>
    </Style>
</Application.Resources>

【讨论】:

以上是关于Xamarin.Forms.Picker 内容在 UWP 中重复的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms Picker - iOS 上的“完成”文本

更改 Xamarin Forms Picker 按钮样式 [重复]

我们如何处理 Xamarin Forms Picker 的完成按钮单击事件?

sed 在匹配行前后添加内容

使页脚被内容推离页面,但在不是整页内容时停留在底部

在 Web 内容模板中显示 Web 内容