You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决WPF中打开文件对话框筛选功能失效问题

WPF OpenFileDialog筛选功能失效问题解决

你的代码核心问题是调用ShowDialog()的顺序错误——在对话框已经弹出后才设置Filter和Title,这些配置根本不会生效,导致筛选功能失效。

修正后的代码

Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
// 先设置所有对话框属性
openFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; // 替换Windows.Forms的API,更贴合WPF
openFileDialog.Filter = "Lua scripts (*.lua)|*.lua|Txt Scripts (*.txt)|*.txt"; // 修正筛选器里的多余*
openFileDialog.Title = "Open Scripts"; // 标题和对话框功能匹配
// 最后调用ShowDialog()弹出对话框
Nullable<bool> result = openFileDialog.ShowDialog();

if (result == true)
{
    TextEditor.Text = File.ReadAllText(openFileDialog.FileName);
}

额外注意事项

  • 筛选器格式必须严格遵循显示文本 (*.扩展名)|*.扩展名的规则,你原代码里(*.txt*)多了一个星号,会导致筛选逻辑异常
  • 避免在WPF项目中引用System.Windows.Forms获取启动路径,用AppDomain.CurrentDomain.BaseDirectory或Environment.CurrentDirectory更合适
  • 对话框标题建议和功能匹配,打开文件用"Open Scripts"比"Save Scripts"更合理

内容的提问来源于stack exchange,提问作者Tim Joey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 22:05:21