我是WPF和C#框架的新手。我有一个要求,用户必须选择.txt文件,除此之外,他/她必须能够选择另外两个选项(TextBox和单选按钮)。有没有一种简单的方法可以使用OpenFileDialog做到这一点?
private void Import_Click(object sender, RoutedEventArgs e)
{
//open a browser for .txt files
OpenFileDialog dlg = new OpenFileDialog();
dlg.DefaultExt = ".txt";
dlg.Filter = "Text Files(*.txt)|*.txt";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
if (File.Exists(dlg.FileName))
{
MessageBox.Show("Choose Options", "Choose different options before proceeding");
// Add Text box option here
// Add Radio button option here
}
}
}
答案 0 :(得分:1)
您可以创建一个Window类型的模态窗口:
http://msdn.microsoft.com/en-us/library/system.windows.window(v=vs.110).aspx
并使用Window.OpenDialog将其打开为模态对话框:
http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx
在xaml中以这种方式创建的窗口中,您需要像上面那样添加用于打开OpenFileDialog的按钮,以及所有其他控件,这样您至少可以将它分开一个视图。不幸的是,它并没有很好地定制,也没有使用WPF样式。
这是一个简单的xaml脚手架,可以作为OpenFileDialog按钮的包装器:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Margin="4"/>
<Button Grid.Column="1" Content="..." MinWidth="40" MinHeight="40" Name="Button1"/>
<RadioButton Content="Radio1" Grid.Row="1"/>
</Grid>
</Window>
另一种方法是构建整个OpenFileDialog功能 - 或者至少从上面提到的方式开始,只是没有OpenFileDialog和手工制作的所有OpenFileDialog控件。