首页 > 解决方案 > 如何从 Xamarin Forms UWP 中删除/替换选择器下拉图标?

问题描述

我正在使用 PCL 项目中的 Xamarin.Forms 选择器,但在 Android 和 iOS 的情况下,选择器下拉图标不可用,而对于 UWP 选择器下拉图标可用。

我得到了一个解决方案,它为 Android 和 iOS 平台( https://xamgirl.com/picker-with-right-side-icon-in-xamarin-forms/ )添加了一个选择器下拉图像,我需要使用相同的UWP 的逻辑也是如此。所以我需要从 UWP 选择器(组合框)中隐藏当前的下拉图标,并使用自定义图像更新图标。

我想从 UWP 中的选择器中删除下拉图标因此我关注了这篇文章-( Xamarin.Forms UWP - 如何隐藏或更改 Picker / ComboBox 下拉箭头的颜色)

我不想在特定于平台的 App.xaml 文件中编写任何代码。但是我需要从自定义渲染器类中删除图标,有什么办法吗?或者我需要使用自定义渲染类中的自定义图像更新该图标。

标签: xamarinxamarin.formsuwpcomboboxxamarin.uwp

解决方案


你可以使用这个解决方案

<Frame Padding="10">
            <StackLayout>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="80*" />
                        <ColumnDefinition Width="20*" />
                    </Grid.ColumnDefinitions>
                    <Label Grid.Column="0" Text="{Binding Source={x:Reference MyPicker}, Path=SelectedItem.Title}" />
                    <Image Source="downdownpng.png" Grid.Column="1"/>
                </Grid>
                <Picker
                    x:Name="MyPicker"
                    ItemDisplayBinding="{Binding Title}"
                    ItemsSource="{Binding PickerItemSource}" />
                <StackLayout.GestureRecognizers>
                    <TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
                </StackLayout.GestureRecognizers>
            </StackLayout>
        </Frame>

在你的 .cs

private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
    {
        MyPicker.Focus();
    }

推荐阅读