[WPF] Fill у колонки Grid-a
От: Аноним  
Дата: 09.08.11 17:58
Оценка:
Хочу сделать через разметку простую вещь: На окне две 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>
Re: [WPF] Fill у колонки Grid-a
От: MxMsk Португалия  
Дата: 09.08.11 18:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Хочу сделать через разметку простую вещь: На окне две DockPanel-и,одна придочена влево,вторая Fill. При выставлении Visibility=Collapsed у первой,вторая должна занять всё пространство. Делаю так,но результата не получаю — первая скрывается,вторая — остаётся без изменений:

Пропиши первому и последнему ColumnDefinition-у
Width="Auto"
Re[2]: [WPF] Fill у колонки Grid-a
От: Аноним  
Дата: 09.08.11 18:12
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Пропиши первому и последнему ColumnDefinition-у

MM>
MM>Width="Auto"
MM>


Спасибо за ответ,но это ничего не изменило.
Re[3]: [WPF] Fill у колонки Grid-a
От: Gvozdin http://gvozdin.ru
Дата: 09.08.11 18:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MxMsk, Вы писали:


MM>>Пропиши первому и последнему ColumnDefinition-у

MM>>
MM>>Width="Auto"
MM>>


А>Спасибо за ответ,но это ничего не изменило.


В вашем примере это то что вы просили
Сами попробуйте
http://gvozdin.ru
Re[4]: [WPF] Fill у колонки Grid-a
От: Аноним  
Дата: 09.08.11 18:25
Оценка:
Здравствуйте, 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>


Сами попробуйте))
Re[5]: [WPF] Fill у колонки Grid-a
От: Gvozdin http://gvozdin.ru
Дата: 09.08.11 18:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Gvozdin, Вы писали:


G>>В вашем примере это то что вы просили

G>>Сами попробуйте

А>Мне тоже казалось,что это то я просил(и ещё до открытия темы тут ),но на практике это не работает:


А>Сами попробуйте))


Ну ка разбирайтесь вообще что у вас происходит то в гриде Как колонка то схлопнется когда у ней MinWidth задан?
Задайте MinWidth для DockPanel, а у колонки уберите. Тогда в случае DockPane.Visibility=Collapsed колонка станет шириной в 0, иначе ширина будет MinWidth.
http://gvozdin.ru
Re[6]: [WPF] Fill у колонки Grid-a
От: Аноним  
Дата: 09.08.11 18:44
Оценка:
Здравствуйте, Gvozdin, Вы писали:

G>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Gvozdin, Вы писали:


G>>>В вашем примере это то что вы просили

G>>>Сами попробуйте

А>>Мне тоже казалось,что это то я просил(и ещё до открытия темы тут ),но на практике это не работает:


А>>Сами попробуйте))


G>Ну ка разбирайтесь вообще что у вас происходит то в гриде Как колонка то схлопнется когда у ней MinWidth задан?

G>Задайте MinWidth для DockPanel, а у колонки уберите. Тогда в случае DockPane.Visibility=Collapsed колонка станет шириной в 0, иначе ширина будет MinWidth.

Спасибо,вы правы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.