在Silverlight5中添加SaveFileDialog的DefaultFileName属性时,在安全警告提示中更改默认消息

时间:2015-06-19 09:49:05

标签: c# silverlight silverlight-5.0 savefiledialog

我正在使用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中自定义消息。

希望你们中的一些人可能会遇到这个问题,请指导我克服这个问题。

请找到下面的图片

enter image description here

1 个答案:

答案 0 :(得分: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