Проблемы с управлением размещением элемента управления Dockpanel в wpf - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть приложение WPF с вкладками и элементами управления браузером. Мне бы хотелось, чтобы вкладки были в верхней части экрана навигации, но навигация отображается только, а не вкладки, как показано здесь; отображается только панель навигации:

enter image description here

Это код xaml:

<Grid>
    <TabControl Name="tabDynamic" ItemsSource="{Binding}" SelectionChanged="tabDynamic_SelectionChanged">
        <TabControl.Resources>
            <DataTemplate x:Key="TabHeader" DataType="TabItem">
                <DockPanel>
                    <DockPanel LastChildFill="True" DockPanel.Dock="Top">
                        <Button Name="btnDelete" DockPanel.Dock="Right" Margin="5,0,0,0" Padding="0" Click="btnDelete_Click" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Name}">
                        </Button>
                    </DockPanel>
                </DockPanel>
            </DataTemplate>
        </TabControl.Resources>
    </TabControl>
    <DockPanel>
        <DockPanel LastChildFill="True" DockPanel.Dock="Top">
            <Button Content="&lt;Back" Name ="backree" Click="backree_Click"> </Button>
            <Button Content="Go" Name ="navixd" Click="navixd_Click"></Button>
            <Button Content="Forward&gt;" Name ="forwardyikes" Click="forwardyikes_Click"></Button>
            <TextBox Name="addbox"></TextBox>
        </DockPanel>
        <cefsharp:ChromiumWebBrowser Address="StackOverflow.com" FrameLoadEnd="ChromiumWebBrowser_OnFrameLoadEnd" Name="Browser"></cefsharp:ChromiumWebBrowser>
    </DockPanel>

</Grid>

Как мне сделать навигацию панель отображается под вкладками, или еще лучше, как бы я отображал вкладки в самой верхней части окна, например chrome tabs (я не уверен, как называется эта часть).

1 Ответ

0 голосов
/ 20 февраля 2020

Вы не определили Grid Строки и Столбцы, добавьте это в Определение Сетки

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <TabControl Grid.Row="0"> [...] </TabControl>
    <DockPanel  Grid.Row="1"> [...] </DockPanel>

</Grid>

Это заставит элементы управления упорядочиться в разные строки.

Это Height="auto" означает, что ваш ряд будет уменьшен до минимально возможной высоты. Height="*" вместо этого будет использовать все оставшееся пространство.

Чтобы иметь возможность иметь вкладки в верхней части окна (как в Chrome), вам, вероятно, потребуется больше работы с помощью пакетов дополнений или Реализовано windows.

Надеюсь, я вам помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...