Удалите пользовательский элемент управления в mdicontainer.
Здравствуйте друзья
Я использовал mdi в главном окне. У меня есть несколько пользовательских элементов управления (которые включают в себя несколько кнопок).
Пользовательские элементы управления открываются в mdi.
Теперь я хочу закрыть пользовательский элемент управления, нажав на кнопку.
<Window x:Class="Application2.MainWindow" xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Width="1300" Height="700" Loaded="Window_Loaded" > <Grid > <DockPanel Height="19" VerticalAlignment="Top"> <Menu Margin="0,0,0,-10" > <MenuItem Header="File"> <MenuItem Header="New" Name="neww" Click="neww_Click" > </MenuItem> </Menu> </DockPanel> <Grid Margin="0,63,0,0"> <mdi:MdiContainer Name="container1" Margin="0,8,0,0"> </mdi:MdiContainer> </Grid> </Grid> </Window>
код за главным окном:
private void neww_Click(object sender, RoutedEventArgs e) { container1.Children.Add(new MdiChild() { Title = "", Height=247, Width=444, Content = new UListNew()// it is user control }); }
Внутри пользовательского элемента управления (UListNew) есть кнопка(btnClose) для закрытия.
код за UListNew:
private void btnClose_Click(object sender, RoutedEventArgs e) { MainWindow parentWindow = Window.GetWindow(this) as MainWindow; parentWindow.container1.Children.RemoveAt( index); }
теперь, если у меня есть несколько открытых пользовательских элементов управления ,
Как получить пользовательский элемент управления index для close?
пожалуйста, помогите мне.
Что я уже пробовал:
private void btnClose_Click(object sender, RoutedEventArgs e) { MainWindow parentWindow = Window.GetWindow(this) as MainWindow; parentWindow.container1.Children.RemoveAt( index????); }
phil.o
Возможно, мы понятия не имеем, где находится WPF.Сборка MDI происходит от того, как и как использовать ее функциональные возможности. Это не является частью стандартной структуры. Поэтому вам может быть трудно найти подходящий и полезный ответ.
Dave Kreskowiak
Стандартный WPF не имеет контейнера MDI. Это контроль третьей стороны, о котором вы говорите. Откуда вы его взяли и почему не просите поддержки у этих людей?
mahdiiiiyeh
Многие приложения выполняются с помощью контейнера MDI.Использование WPF.mdi.dll.
Я хочу получить текущий пользовательский контроль индекса.
parentWindow.контейнер1.Детей.RemoveAt( индекс????);
или
как получить текущий дочерний экземпляр mdi?
parentWindow.контейнер1.Детей.Удалить( ?????);
пожалуйста, направь меня
Dave Kreskowiak
Во-первых, МДИ-это мертвая концепция. Опять же, WPF не имеет встроенной поддержки MDI. Это сторонний элемент управления, который вы используете. Откуда она у тебя?