c# - 从 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 的示例。任何帮助将不胜感激。谢谢你。
解决方案
您的方法void
意味着您无法从中return
获得价值。同样,File
是一个静态类,这意味着您无法实例化它。我认为你最终想要的是File.WriteAllText(filePath, serialized)
var savePath = Path.Combine(@"C:\Path\to\parent\directory", "event.ics");
File.WriteAllText(savePath, serializedCalendar);
推荐阅读
- pandas - 如何使用其他列数据的条件自动填充一列中的行?
- spring-kafka - 何时使用 RecoveryCallback 与 KafkaListenerErrorHandler
- php - 将 csv 文件上传到 MySQL 数据库而不逐行插入
- docker - 无法在 Docker 中创建任何容器“无法在本地找到图像 'all:latest'”
- javascript - Gatsby 是否有一些插件或最佳实践来创建使用不同语言的每个构建?
- android - 不同的 Android 屏幕,不同的颜色,我们可以将屏幕编程为看起来相同吗?
- c# - 如何使用 PGPTool 密钥通过 C# 解密文件
- javascript - 单击 ReactJS 检索图像的索引
- javascript - 另一个函数内部的函数只能工作一次
- python - Crashes when moving cellWidgets around in a TableWidget