CS2011 Ответов: 1

WPF GridSplitter и управление браузером не работают


WPF GridSplitter и управление браузером работают не так, как ожидалось. когда я перемещаю GridSplitter, содержимое выплескивается из окна. Это происходит, когда вы даете ширину по умолчанию элементу управления браузером. Есть идеи, как это исправить?

Пример кода
<Window x:Class="htmlBrowserControl.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MainWindow" Height="350" Width="525">
    <Grid removed="AliceBlue">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition />
            <ColumnDefinition Width="500"/>
        </Grid.ColumnDefinitions>
        <GridSplitter Grid.Column="1" Width="5" ></GridSplitter>
        <!--<Grid Grid.Column="2">-->
            <!--<ContentControl>-->
        <WebBrowser Grid.Column="2" Source="C:\HelpConfig\PSCHelp.html" Width="500" ></WebBrowser>
            <!--</ContentControl>-->
        <!--</Grid>-->
    </Grid>
</Window>

1 Ответов

Рейтинг:
0

tgrt

Вы не даете ему по умолчанию ширина. Ты даешь его то ширина. Вот почему его выталкивают. GridSplitter управляет шириной ячейки, в которой он находится. Я думаю, что ваш XAML ошибается в этом отношении, потому что он находится в вашей собственной ячейке.

Вы можете определить некоторые ограничения, указав значения MinWidth. WPF неодобрительно относится к жесткому кодированию значений высоты и ширины. Вот что, по-моему, тебе нужно.

<window x:class="CpGridSplitter.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MainWindow" Height="350" Width="550" MinWidth="550">
    <grid>
        <grid.columndefinitions>
            <columndefinition width="Auto" minwidth="50" />
            <columndefinition minwidth="500" />
        </grid.columndefinitions>
        <button grid.column="0" content="Foo" />
        <gridsplitter grid.column="0" width="5" />
        <webbrowser grid.column="1" source="http://www.bing.com" />
    </grid>
</window>