在 Silverlight5 中添加 SaveFileDialog 的 DefaultFileName 属性时更改安全警告提示中的默认消息
Posted
技术标签:
【中文标题】在 Silverlight5 中添加 SaveFileDialog 的 DefaultFileName 属性时更改安全警告提示中的默认消息【英文标题】:Change the default message in the Security warning prompt when adding the DefaultFileName property of SaveFileDialog in Silverlight5 【发布时间】:2015-06-19 09:49:04 【问题描述】:我正在使用 Silverlight5,我只需要从我的应用程序中保存一个文件。当用户单击保存按钮时,它应该使用默认名称打开 SaveFileDialog。 使用以下代码:
private void Button_Click(object sender, RoutedEventArgs e)
SaveFileDialog dialog = new SaveFileDialog
DefaultExt = "xls",
Filter =
String.Format("1 files (*.0)|*.0|All files (*.*)|*.*", "xls", "Excel"
),
FilterIndex = 1,
DefaultFileName = "Test",
;
dialog.ShowDialog();
但问题是,当我们将 DefaultFileName 属性添加到 SaveFileDialog 时,它会自动显示一个确认消息窗口。我需要自定义打开 SaveFileDialog 时显示的 MessageBox 中的消息。
希望你们中的一些人可能会遇到这个问题,请指导我克服这个问题。
请在下面找到图片
【问题讨论】:
【参考方案1】:你不能。这个消息是由插件原生实现生成的,所以如果你想覆盖这个消息;您需要创建自己的 Silverlight 插件 :)
证明(来自 System.Windows.dll 的反射)
// System.Windows.Controls.SaveFileDialog
private bool? ShowDialogInternal(Window owner)
...
// call to native plugin API to show save dialog
num = XcpImports.UI_GetSaveFileName(NativeHost.Current.RuntimeHost, ref this.m_dlgInfo, out dialogResult);
if (NativeMethods.SUCCEEDED(num) && this.m_dlgInfo.lpstrFile != IntPtr.Zero && dialogResult == DialogResult.OK)
// if everything went ok, we have the handle to saved file
...
...
话虽如此 - 如果您将浏览器配置为信任您的应用,则可以关闭此对话框。另请查看此连接问题,质疑此对话框的有效性:
https://connect.microsoft.com/VisualStudio/feedback/details/690502/savefiledialog-security-warning
【讨论】:
感谢您的回复,我已经在 connect 中遇到过该问题。我会尝试你的解决方案。谢谢:)以上是关于在 Silverlight5 中添加 SaveFileDialog 的 DefaultFileName 属性时更改安全警告提示中的默认消息的主要内容,如果未能解决你的问题,请参考以下文章
安装 VS 2015.1 / .NET 4.6.1 后 Silverlight 5 SDK SLSvcUtil 错误