【问题标题】:How to add activity(Appointments, Tasks) in Xamarin.Forms by using calendar control inside applicatoin?如何使用应用程序内的日历控件在 Xamarin.Forms 中添加活动(约会、任务)?
【发布时间】:2019-04-25 09:14:10
【问题描述】:

我正在创建一个应用程序,因为需要在特定页面或块内显示日历,并且在日历内有显示特定活动的日期,例如 4 月 27 日它显示第 4 个星期六等等,这取决于运行。

我正在使用 .Net 标准 2.0 并尝试使用 XamForms.Controls.Calendar 进行制作,但它对我不起作用。

我需要使用免费插件和完整的 .Net 标准支持来实现日历。

任何人都可以对此进行调查并建议我应该在代码或配置中进行哪些更改吗?

【问题讨论】:

    标签: xamarin xamarin.forms calendar calendarview appointment


    【解决方案1】:

    如果您只想显示特定日期的特定活动,可以使用XamForms.Controls.Calendar 中的SpecialDate 来实现,我设置FontSize = 0 使日期不可见并设置Selectable = false 禁用选择行动:

        public MainPage()
        {
            InitializeComponent();
    
            Calendar calendar = new Calendar
            {
                MaxDate = DateTime.Now.AddDays(30),
                MinDate = DateTime.Now.AddDays(-1),
                MultiSelectDates = false,
                DisableAllDates = false,
                WeekdaysShow = true,
                ShowNumberOfWeek = true,
    
                ShowNumOfMonths = 1,
                EnableTitleMonthYearView = true,
                WeekdaysTextColor = Color.Teal,
                StartDay = DayOfWeek.Monday,
                SelectedTextColor = Color.Fuchsia,
                SpecialDates = new List<SpecialDate>{
                    new SpecialDate(DateTime.Now.AddDays(2))
                    {
                        BackgroundColor = Color.White,
                        TextColor = Color.White,
    
                        Selectable = false,
                        FontSize = 0,
    
                        BackgroundPattern = new BackgroundPattern(1)
                        {
                            Pattern = new List<Pattern>
                            {
                                new Pattern{ WidthPercent = 1f, HightPercent = 1f, Color = Color.White,Text = "4th Saturday", TextColor=Color.DarkBlue, TextSize=8, TextAlign=TextAlign.Middle}
                            }
                        }
                    }
                }
            };
    
            Content = new ScrollView
            {
                Content = new StackLayout
                {
                    Padding = new Thickness(5, Device.RuntimePlatform == Device.iOS ? 25 : 5, 5, 5),
                    Children = {
                            calendar//,c2
                        }
                }
            };        
    
        }
    

    结果如下:

    如果你想显示所有星期六,你应该自己计算日期并将日期作为参数传递给DateTime.Now.AddDays(2)

    【讨论】:

    • 嗨@Jack,感谢您的回复。首先,我想告诉您,当我使用.Net Standard 2.0 并且尝试安装nuget 时,您将它传递给我,而不是正确安装但在nuget 中显示警告。你能检查一下这里应该缺少什么吗?
    • @DeepSoni 我不知道这里缺少什么。该警告让用户知道这些资产可能不是 100% 兼容的。但是,当我安装它并且它在我身边运行良好时。对其网站的唯一依赖是 Xamarin.Forms (>= 2.3.4.231)。使用时可以检查是否有问题。
    • 嗨@Jack 感谢您的回复。我正在使用 Xamarin.Forms 3.5,当我尝试单击按钮时,我的活动取决于 api 调用特定用户的所有活动,如任务、约会、通话都显示在日历中。
    • @DeepSoni 你有什么问题?当您从 api 获得响应时,您可以设置 calendar.SpecialDates 以在日历中显示特定用户的所有活动,如任务、约会、通话。
    • 感谢您的帮助。这对我帮助很大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多