首页 > 解决方案 > 从 WPF 按钮单击返回文本文件

问题描述

我正在开发一个需要使用 iCal.NET 和 WPF 框架生成 iCal 文件的项目。iCal 文件将基于单击按钮事件生成。我有一个代码示例,如下:

private void DownloadiCal_click(object sender, RoutedEventArgs e)
{
        var now = DateTime.Now;

        var later = now.AddHours(2);

        //Repeat Once a week
        var rrule = new RecurrencePattern(FrequencyType.Weekly, 1) { Count = 1 };

        //Creation of New Calendar Event

        var ce = new CalendarEvent 
        {
            Start = new CalDateTime(now),
            End = new CalDateTime(later),
            RecurrenceRules = new List<RecurrencePattern> { rrule },
        };


        //Update to include Calendar event to Calendar. 
        var calendar = new Ical.Net.Calendar(); 
        calendar.Events.Add(ce);

        var serializer = new CalendarSerializer();
        var serializedCalendar = serializer.SerializeToString(calendar);
        var bytesCalendar = Encoding.UTF8.GetBytes(serializedCalendar);

        return File(bytesCalendar, "text/calendar", "event.ics");
}

但是,单击按钮后,不会生成文件,我相信它与返回文件有关,但是,对于我目前查看的文档,我看到了 ASP.NET 的示例,但没有看到 WPF 的示例。任何帮助将不胜感激。谢谢你。

标签: c#wpffile

解决方案


您的方法void意味着您无法从中return获得价值。同样,File是一个静态类,这意味着您无法实例化它。我认为你最终想要的是File.WriteAllText(filePath, serialized)

var savePath = Path.Combine(@"C:\Path\to\parent\directory", "event.ics");
File.WriteAllText(savePath, serializedCalendar);

推荐阅读