如何在MAUI中以编程方式显示Picker下拉菜单?
在MAUI中触发Picker下拉窗口的方法
在Xamarin里,调用myPicker.Focus()就能直接弹出Picker的下拉菜单,但MAUI里有个区别:如果Picker已经处于聚焦状态,重复调用Focus()不会触发下拉弹窗。解决这个问题可以用以下两种方式:
通用兼容方案
先检查Picker是否已经聚焦,如果是,先取消焦点再重新调用Focus(),以此强制触发下拉:if (myPicker.IsFocused) { myPicker.Unfocus(); } myPicker.Focus();这个方法简单有效,适配大多数场景。
平台原生调用(备选)
如果通用方案不满足需求,可以针对不同平台直接操作原生控件:- Android平台:获取原生Spinner控件,调用
PerformClick()#if ANDROID var nativeSpinner = myPicker.Handler.PlatformView as Android.Widget.Spinner; nativeSpinner?.PerformClick(); #endif - iOS平台:获取原生按钮控件,触发点击事件
#if IOS var nativePickerBtn = myPicker.Handler.PlatformView as UIKit.UIButton; nativePickerBtn?.SendActionForControlEvents(UIKit.UIControlEvent.TouchUpInside); #endif
- Android平台:获取原生Spinner控件,调用
内容的提问来源于stack exchange,提问作者BlueRaja - Danny Pflughoeft
相关产品推荐
相关产品推荐

