Keyboard我在使用完后或触摸屏幕后leave遇到Entry隐藏问题。
在 Xamarin Forms 中,它工作正常,键盘隐藏了,但里面却Maui没有?
<CheckBox
x:Name="Cbbb1"
Grid.Row="1"
Grid.Column="0"/>
<Entry
x:Name="Ebb1"
Grid.Row="2"
Grid.Column="2"
Keyboard="Numeric" />
Run Code Online (Sandbox Code Playgroud)
删除Keyboard="Numeric"没有帮助。
我正在使用VisualStudio 2022 预览版 17.1.0 预览版 3.0。
我也尝试过这个:
xmlns:local="clr-namespace:KeyboardhideMaui"
Run Code Online (Sandbox Code Playgroud)
和这个:
<Entry.Triggers>
<DataTrigger TargetType="Entry" >
<Trigger.EnterActions>
<local:FocusTriggerAction Focused="True" />
</Trigger.EnterActions>
<Trigger.ExitActions>
<local:FocusTriggerAction Focused="False" />
</Trigger.ExitActions>
</DataTrigger>
</Entry.Triggers>
<CheckBox
x:Name="Cbbb1"
Grid.Row="1"
Grid.Column="0" />
<Entry
x:Name="Ebb1"
Grid.Row="2"
Grid.Column="2"
Keyboard="Numeric" />
Run Code Online (Sandbox Code Playgroud)
班级
public class FocusTriggerAction : TriggerAction<Entry>
{
public bool Focused { get; set; }
protected override async void Invoke(Entry entry)
{
await Task.Delay(1000);
if (Focused)
{
entry.Focus();
}
else
{
entry.UnFocus();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误 entry.UnFocus();:
“Entry”不包含“UnFocus”的定义,并且找不到接受“Entry”类型的第一个参数的可访问扩展方法“UnFocus”(您是否缺少 using 指令或程序集引用?)
小智 1
请尝试这个:
将其添加到您的 xaml 页面(页面资源)
<Style TargetType="Entry">
<Style.Triggers>
<EventTrigger Event="Unfocused">
<local:UnFocusTriggerAction />
</EventTrigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
然后在您的项目中添加 UnFocusTriggerAction
public class UnFocusTriggerAction : TriggerAction<Entry>
{
protected override void Invoke(Entry entry)
{
entry.Unfocus();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3235 次 |
| 最近记录: |