Как отобразить пользовательский элемент управления UserControl в виде диалогового окна?
Как вы отображаете пользовательский UserControl
как диалог в C# / WPF (.NET 3.5)?
5 ответов:
поместите его в окно и звонок
Window window = new Window { Title = "My User Control Dialog", Content = new OpenDialog(), SizeToContent = SizeToContent.WidthAndHeight, ResizeMode = ResizeMode.NoResize }; window.ShowDialog();
работает как волшебство для меня. Можно ли это сделать как модальный диалог?
Ans: ShowDialog он сам сделать это как модальный диалог.. ...
насколько я знаю, вы не можете сделать это. Если вы хотите показать его в диалоговом окне, это прекрасно, просто создайте новое окно, которое содержит только ваш UserControl, и вызовите ShowDialog() после создания экземпляра этого окна.
EDIT: Элемент
UserControl
класс не содержит метод ShowDialog, поэтому то, что вы пытаетесь сделать, на самом деле невозможно.это, однако, является:
private void Button_Click(object sender, RoutedEventArgs e){ new ContainerWindow().ShowDialog(); }
namespace System.Window.Form { public static class Ext { public static DialogResult ShowDialog(this UserControl @this, string title) { Window wind = new Window() { Title = title, Content = @this }; return wind.ShowDialog(); } } }
использование его может быть так же просто, как UserControlInstance.ShowDialog (). Лучшей настраиваемой реализацией было бы расширение класса Window и его настройка с помощью конструктора и кода для получения любой функциональности.
Если ответ 'sixlettervariables' изменен таким образом, он работает
private void button1_Click ( object sender, RoutedEventArgs e ) { Window window = new Window { Title = "My User Control Dialog", Content = new UserControl ( ), Height = 200, // just added to have a smaller control (Window) Width = 240 }; window.ShowDialog ( ); }