Хочу сделать через разметку простую вещь: На окне две DockPanel-и,одна придочена влево,вторая Fill. При выставлении Visibility=Collapsed у первой,вторая должна занять всё пространство. Делаю так,но результата не получаю — первая скрывается,вторая — остаётся без изменений:
<Window.Resources>
<BooleanToVisibilityConverter x:Key="boolToVisibilityConverter" />
</Window.Resources>
<Grid>
<Grid Name="grid1" ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<DockPanel Name="dockPanel1" Grid.Column="0" Background="BlueViolet" HorizontalAlignment="Stretch"
Visibility="{Binding ElementName=chPanelHider,Path=IsChecked, Converter={StaticResource boolToVisibilityConverter}}"></DockPanel>
<DockPanel Name="dockPanel2" Grid.Column="1" Background="Violet" HorizontalAlignment="Stretch" LastChildFill="True"></DockPanel>
<CheckBox Name="chPanelHider" Grid.Column="2" VerticalAlignment="Top" IsChecked="True">PanelVisible</CheckBox>
</Grid>
</Grid>
Здравствуйте, Аноним, Вы писали:
А>Хочу сделать через разметку простую вещь: На окне две DockPanel-и,одна придочена влево,вторая Fill. При выставлении Visibility=Collapsed у первой,вторая должна занять всё пространство. Делаю так,но результата не получаю — первая скрывается,вторая — остаётся без изменений:
Пропиши первому и последнему ColumnDefinition-у
Width="Auto"
Здравствуйте, MxMsk, Вы писали:
MM>Пропиши первому и последнему ColumnDefinition-у
MM>MM>Width="Auto"
MM>
Спасибо за ответ,но это ничего не изменило.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, MxMsk, Вы писали:
MM>>Пропиши первому и последнему ColumnDefinition-у
MM>>MM>>Width="Auto"
MM>>
А>Спасибо за ответ,но это ничего не изменило.
В вашем примере это то что вы просили
Сами попробуйте
Здравствуйте, Gvozdin, Вы писали:
G>В вашем примере это то что вы просили
G>Сами попробуйте
Мне тоже казалось,что это то я просил(и ещё до открытия темы тут
),но на практике это не работает:
<Window x:Class="WpfTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="NewWindow" Name ="NewWindow" Height="300" Width="300" WindowState="Maximized">
<Window.Resources>
<BooleanToVisibilityConverter x:Key="boolToVisibilityConverter" />
</Window.Resources>
<Grid>
<Grid Name="grid1" ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100" Width="Auto"></ColumnDefinition>
<ColumnDefinition MinWidth="100" ></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<DockPanel Name="dockPanel1" Grid.Column="0" Background="BlueViolet" HorizontalAlignment="Stretch"
Visibility="{Binding ElementName=chPanelHider,Path=IsChecked, Converter={StaticResource boolToVisibilityConverter}}"></DockPanel>
<DockPanel Name="dockPanel2" Grid.Column="1" Background="Violet" HorizontalAlignment="Stretch" LastChildFill="True"></DockPanel>
<CheckBox Name="chPanelHider" Grid.Column="2" VerticalAlignment="Top" IsChecked="True">PanelVisible</CheckBox>
</Grid>
</Grid>
</Window>
Сами попробуйте))
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Gvozdin, Вы писали:
G>>В вашем примере это то что вы просили
G>>Сами попробуйте
А>Мне тоже казалось,что это то я просил(и ещё до открытия темы тут ),но на практике это не работает:
А>Сами попробуйте))
Ну ка разбирайтесь вообще что у вас происходит то в гриде
Как колонка то схлопнется когда у ней MinWidth задан?
Задайте MinWidth для DockPanel, а у колонки уберите. Тогда в случае DockPane.Visibility=Collapsed колонка станет шириной в 0, иначе ширина будет MinWidth.
Здравствуйте, Gvozdin, Вы писали:
G>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Gvozdin, Вы писали:
G>>>В вашем примере это то что вы просили
G>>>Сами попробуйте
А>>Мне тоже казалось,что это то я просил(и ещё до открытия темы тут ),но на практике это не работает:
А>>Сами попробуйте))
G>Ну ка разбирайтесь вообще что у вас происходит то в гриде Как колонка то схлопнется когда у ней MinWidth задан?
G>Задайте MinWidth для DockPanel, а у колонки уберите. Тогда в случае DockPane.Visibility=Collapsed колонка станет шириной в 0, иначе ширина будет MinWidth.
Спасибо,вы правы.