.Net Maui 日期和时间选择器不会触发 Focused 事件

问题描述 投票:0回答:1

我正在将 Xamarin 项目转换为 .Net Maui。在条目表单上,我有选择器、编辑器、条目、日期选择器和时间选择器。当用户点击或以其他方式导航到输入控件时,我会触发它的 Focused 事件,而当它离开控件时,我会触发 Unfocused 事件,其目的只是突出显示用户所关注的控件。我遇到的问题是,当用户点击毛伊岛的日期或时间选择器时,Focused() 事件不会触发,突出显示在前一个控件(条目、编辑器等)上。否则,选择器将按预期工作。在 Xamarin 应用程序中,焦点事件按预期工作,但在毛伊岛则不然。下面是我正在使用的 xaml 和 C# 代码。 Xamarin 和 Maui 中的情况相同,只是缺少 Xamarin.Forms。 Maui 应用程序中的参考。 XAML代码:

                <Grid Padding="10,0,10,0" ColumnDefinitions="150,200" RowDefinitions="40">
                    <Label Text="End Time" Margin="15,0,0,0" Style="{StaticResource LabelEntry}"/>
                    <TimePicker x:Name="endTimePicker" Grid.Column="1" Grid.Row="0" HorizontalOptions="Start" Time="{Binding BeginDate}" Format="HH:mm" VerticalOptions="Center"
                                Focused="TimePickerHighlight" Unfocused="TimePickerHighlight" BackgroundColor="Transparent"/>
                </Grid>

背后代码:

        private void DatePickerHighlight(object sender, FocusEventArgs e)
    {
        var myentry = sender as Xamarin.Forms.DatePicker;
        var myGrid = myentry.Parent as Xamarin.Forms.Grid;
        if (e.IsFocused)
        {
            myGrid.BackgroundColor = App.HighlightColor;

        }
        else
            myGrid.BackgroundColor = Color.White;
    }
    private void TimePickerHighlight(object sender, FocusEventArgs e)
    {
        var myentry = sender as Xamarin.Forms.TimePicker;
        var myGrid = myentry.Parent as Xamarin.Forms.Grid;
        if (e.IsFocused)
        {
            myGrid.BackgroundColor = App.HighlightColor;

        }
        else
            myGrid.BackgroundColor = Color.White;
    }

这是毛伊岛的虫子吗?我是否缺少 Xamarin 中不需要的参考?或者是其他东西?谢谢。

xamarin.forms maui
1个回答
0
投票

不幸的是,这个Pull Request似乎已经破坏了日期/时间选择器,如果我没有记错的话,它在.Net 8中得到了解决。请阅读here以及使用处理程序的解决方法。还有这里

© www.soinside.com 2019 - 2024. All rights reserved.