var dlg = new SaveFileDialog();
dlg.FileName = "graph";
dlg.DefaultExt = ".bmp";
dlg.Filter = "PNG|*.png|DOT|*.dot|Windows Bitmap Format|*.bmp|GIF|*.gif|JPEG|*.jpg|PDF|*.pdf|Scalable Vector Graphics|*.svg|Tag Image File Format|*.tiff";
扩展名始终默认为.png
。看来DefaultExt
如果有则被忽略Filter
;那么它就默认为列表中的第一个选项。
有没有办法强制它真正尊重默认分机?
你应该设置FilterIndex
财产而不是DefaultExt
。如果您还想使用DefaultExt
,您可以手动将其转换为正确的过滤器索引:
public static void UseDefaultExtAsFilterIndex(FileDialog dialog)
{
var ext = "*." + dialog.DefaultExt;
var filter = dialog.Filter;
var filters = filter.Split('|');
for(int i = 1; i < filters.Length; i += 2)
{
if(filters[i] == ext)
{
dialog.FilterIndex = 1 + (i - 1) / 2;
return;
}
}
}
var dlg = new SaveFileDialog();
dlg.FileName = "graph";
dlg.DefaultExt = ".bmp";
dlg.Filter = "PNG|*.png|DOT|*.dot|Windows Bitmap Format|*.bmp|GIF|*.gif|JPEG|*.jpg|PDF|*.pdf|Scalable Vector Graphics|*.svg|Tag Image File Format|*.tiff";
UseDefaultExtAsFilterIndex(dlg);
dlg.ShowDialog();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)