ScrollBar в WPF не отображается должным образом и перебирает tabcontrol - PullRequest
0 голосов
/ 11 июля 2019

Итак, когда я создаю новую полосу прокрутки, вкладка получает ее. Но когда я прокручиваю, он тоже попадает в меню приложения Я не могу найти решение, и я попробовал все.

Я предполагаю, что она также находится внутри панели док-станции, но я не знаю, как ее установить, поскольку, если я добавлю новую панель док-станции, она скажет, что «свойство Content установлено более одного раза».

Ниже вы можете увидеть код:

<Window
    xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ContabilitateMainWPF.Forms.Main"
    xmlns:WPF="clr-namespace:ContabilitateMain.Controls.WPF" x:Class="ContabilitateMainWPF.Forms.Main.FrmMainRibbon"
    mc:Ignorable="d"
    Title="Main" Closing="Window_Closing" Loaded="Window_Loaded" WindowState="Maximized" Icon="/ContabilitateMain;component/Imagini/new_window-512.png" WindowStyle="ToolWindow">
<DockPanel LastChildFill="True">
    <ribbon:Ribbon DockPanel.Dock="Top " Margin="0,-22,0,0">

        <ribbon:Ribbon.ApplicationMenu>
            <ribbon:RibbonApplicationMenu SmallImageSource="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\menu.png">
                <ribbon:RibbonApplicationMenu.AuxiliaryPaneContent >
                    <StackPanel Orientation="Vertical" >
                        <GroupBox>
                            <Label Content="Ceva in group box" />
                        </GroupBox>
                        <StackPanel Orientation="Horizontal"/>
                    </StackPanel>
                </ribbon:RibbonApplicationMenu.AuxiliaryPaneContent>
                <ribbon:RibbonApplicationMenuItem x:Name="Salveaza" Header="Salveaza" />
            </ribbon:RibbonApplicationMenu>
        </ribbon:Ribbon.ApplicationMenu>
        <ribbon:RibbonTab x:Name="OptiuneaA" Header="Coloana A" MouseUp="OptiuneaA_MouseUp">
            <ribbon:RibbonGroup x:Name="T1" Header="Optiunea 1">
                <ribbon:RibbonButton x:Name="NouTab" Label="Tab PNG" LargeImageSource="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\new_window-512.png" Click="NouTab_Click"/>
                <ribbon:RibbonButton x:Name="AltNouTab" Label="Tab JPG" LargeImageSource="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\new.jpg" Click="AltNouTab_Click"/>
            </ribbon:RibbonGroup>
            <ribbon:RibbonGroup x:Name="T2" Header="Optiunea 2">
                <ribbon:RibbonButton x:Name="NouTab2" Label="Tab Nou" LargeImageSource="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\new_window-512.png"/>
                <ribbon:RibbonButton x:Name="AltNouTab2" Label="Tab Secund" LargeImageSource="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\new.jpg"/>
            </ribbon:RibbonGroup>
        </ribbon:RibbonTab>
        <ribbon:RibbonTab x:Name="NouTab1" Header="Coloana B">
            <ribbon:RibbonGroup x:Name="T3" Header="Optiunea 1">
                <ribbon:RibbonButton x:Name="NouTab3" Label="Tab Nou" LargeImageSource="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\new_window-512.png"/>
                <ribbon:RibbonButton x:Name="AltNouTab3" Label="Tab Secund" LargeImageSource="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\new.jpg"/>
            </ribbon:RibbonGroup>
        </ribbon:RibbonTab>
    </ribbon:Ribbon>
    <TabControl x:Name="actionTabs" DockPanel.Dock="Right" Background="White" SelectionChanged="actionTabs_SelectionChanged" >
            <TabControl.ItemTemplate>
                <DataTemplate>
                <StackPanel Orientation="Horizontal" Height="15" Width="100">
                    <TextBlock Width="80" Text="{Binding Header}"/>
                    <Image Source="D:\PlasticWork\ContabilitateNou\ContabilitateMainWPF\Imagini\close.png" Width="20" Height="20" MouseUp="Image_MouseUp"/>
                </StackPanel>
                </DataTemplate>
            </TabControl.ItemTemplate>
        <TabControl.ContentTemplate>
            <DataTemplate x:Name="TabItem1">
                <ScrollViewer>
                <UserControl Content="{Binding Content}" Margin="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
               </ScrollViewer>
            </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>

</DockPanel>

Я ожидал показать прокрутку только вкладки, но она прокручивает весь экран.

1 Ответ

0 голосов
/ 16 июля 2019

Итак, очевидно, ошибка была в том, что я попытался добавить полосу прокрутки в форму окна, которая была вызвана из <UserControl Content="{Binding Content}", который был внутри tabcontrol. Почему-то они подключили друг друга. Я исправил это, добавив Scrollviewer к UserControl, который выглядел примерно так:

 `<UserControl x:Class="ContabilitateMainWPF.Controls.TestUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:ContabilitateMainWPF.Controls"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300" SizeChanged="UserControl_SizeChanged">
    <ScrollViewer>
        <Grid x:Name="Grid">
            <Button x:Name="button" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="199,0,0,0"/>
            <Button x:Name="button_Copy" Content="Button" HorizontalAlignment="Left" Margin="141,91,0,0" VerticalAlignment="Top" Width="75"/>
            <Button x:Name="button_Copy1" Content="Button" HorizontalAlignment="Left" Margin="30,195,0,0" VerticalAlignment="Top" Width="75"/>
            <Button x:Name="button_Copy2" Content="Button" HorizontalAlignment="Left" Margin="199,261,0,0" VerticalAlignment="Top" Width="75"/>
            <Label x:Name="label1" Content="LabelTest" HorizontalAlignment="Left" Margin="62,127,0,0" VerticalAlignment="Top"/>
        </Grid>
    </ScrollViewer>
</UserControl>`

Надеюсь, это поможет кому-нибудь однажды.

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