Viewbox обрезает мою док-панель

вот так моя программа выглядит в моем редакторе

Снимок экрана редактора

это снимок экрана с планшета, на котором работает моя программа.

Реальный снимок экрана

XAML для указанного кода таков

<Window x:Class="DLIUnitLibrary_WPF.ConfigureWindowLandscape"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:DLIUnitLibrary_WPF"
        xmlns:posButton="clr-namespace:DLIUnitLibrary_WPF.Buttons"
        xmlns:UnitImagePanels="clr-namespace:DLIUnitLibrary_WPF.UnitImagePanels"
        Background="{DynamicResource formBackground}"
        Width="800"
        Height="480"
        WindowState="Maximized"
        WindowStyle="None"
        Loaded="Window_Loaded">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Dictionary.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Viewbox Margin="10">
        <DockPanel x:Name="mainView"
                   Height="480"
                   Width="800">
            <local:DLIHeader DockPanel.Dock="Top"
                             Visibility="Hidden" />
            <WrapPanel Width="125"
                       ItemHeight="125"
                       ItemWidth="125"
                       Margin="0,5,0,0"
                       DockPanel.Dock="Right"
                       Orientation="Vertical"
                       VerticalAlignment="Bottom">
                <posButton:OposButton x:Name="msrButton"
                                      Margin="5"
                                      ImageSource="Images/msr_keymon.png" />
                <posButton:OposButton x:Name="imagerButton"
                                      Margin="5"
                                      ImageSource="Images/barcode_keymon.png" />
                <posButton:OposButton x:Name="brightButton"
                                      Margin="5"
                                      ImageSource="Images/brightness_keymon.png" />
            </WrapPanel>
            <Grid Margin="10">
                <Viewbox x:Name="tablet9viewbox"
                         Visibility="Hidden">
                    <UnitImagePanels:Tablet9Image />
                </Viewbox>
                <Viewbox x:Name="tablet7viewbox" Visibility="Hidden">
                    <UnitImagePanels:Tablet7Image>
                        <UnitImagePanels:Tablet7Image.LayoutTransform>
                            <TransformGroup>
                                <ScaleTransform />
                                <SkewTransform />
                                <RotateTransform Angle="90" />
                                <TranslateTransform />
                            </TransformGroup>
                        </UnitImagePanels:Tablet7Image.LayoutTransform>
                    </UnitImagePanels:Tablet7Image>
                </Viewbox>
            </Grid>
        </DockPanel>
    </Viewbox>
</Window>

Разрешение экрана на планшете7 800х480. В планшете эмулируется 800x600 и когда я до этого вижу все 3 кнопки.

Разрешение экрана на планшете9 составляет 1024x768 и не имеет проблемы с 2 кнопками, на самом деле он отлично ее отображает. Что мне не хватает?

ИЗМЕНИТЬ

Я забыл о своем коде, извините за это. Это не слишком много для события OnLoade, но оно здесь

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    this.mainView.Height = System.Windows.SystemParameters.PrimaryScreenHeight;
    this.mainView.Width = System.Windows.SystemParameters.PrimaryScreenWidth;

    switch (DLIUnitFinder.GetDLIUnit())
    {
        case DLIUnit.tablet7:
            this.tablet7viewbox.Visibility = System.Windows.Visibility.Visible;
            break;
        case DLIUnit.tablet9:
            this.tablet9viewbox.Visibility = System.Windows.Visibility.Visible;
            break;
    }
}

person Robert Snyder    schedule 25.07.2013    source источник
comment
Вы должны установить видимость неактивного окна просмотра на Collapsed вместо Hidden. Тогда бы он не участвовал в раскладке.   -  person Clemens    schedule 25.07.2013
comment
@Celmens Я специально установил для него значение «Скрытый». В нем есть кнопка закрытия и логотип. Его высота 50, когда я запускаю программу, она никогда не устанавливалась скрытой.   -  person Robert Snyder    schedule 25.07.2013
comment
Вы установили точный размер экрана планшета, но у вас повсюду есть поля, которые увеличат его.   -  person Mark Homer    schedule 25.07.2013
comment
@MarkHomer Я не думаю, что виноваты поля из-за разных разрешений, на которых он работает, и, похоже, он работает хорошо. Я думаю, что это была Wrap Panel, которую я использовал. Я изменил на UniformGrid, и он тоже работает, как мне нужно.   -  person Robert Snyder    schedule 25.07.2013
comment
@RobertSnyder круто этого не знал. Рад, что вы решили это.   -  person Mark Homer    schedule 27.07.2013


Ответы (1)


Для всех, кто испытывает подобную проблему, кажется, что отсечение разрешено с WrapPanel. Я перешел на панель с тремя кнопками с WrapPanel на UniformGrid, и теперь кнопки отображаются так, как должны.

person Robert Snyder    schedule 25.07.2013