我正在使用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中自定义消息。
希望你们中的一些人可能会遇到这个问题,请指导我克服这个问题。
请找到下面的图片
答案 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