Компоновка элементов управления Frame Page - PullRequest
0 голосов
/ 05 марта 2012

Подскажите, пожалуйста, где я ошибся, размер моего кадра соответствует размеру окна wpf, код:

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="BSP" Height="700" Width="990" WindowStartupLocation="CenterScreen">
    <Grid Background="Green" VerticalAlignment="Center" HorizontalAlignment="Center" >
            <Frame Name="MainFrame" Source="LoginScreen.xaml" NavigationUIVisibility="Hidden" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"  />        
    </Grid>
</Window>

Размер страницы меньше, чем у окна, а также общий размер поля + ширина + размер этикетки меньше, чем размер страницы, но кнопка отображается в обрезанном виде. Код для страницы ниже:

<Page x:Class="Loggedin"
      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" 
      mc:Ignorable="d" 
      Height="660" Width="920"
      Title="Loggedin">  
      <Grid Background="white" Margin="2">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Top" >
            <Label Content="Loggedin as" Height="28" HorizontalAlignment="Left" Name="Loggedinas" />
            <Button Content="LogOut" Margin="780,0,0,0" Height="28" Name="Logout" Width="50" HorizontalAlignment="Right"/>
        </StackPanel>
      </Grid>
</Page>

Не могли бы вы помочь мне, он съел мой мозг за 2 дня :(. Ниже приведены фотографии вывода: Рис из Visual Studios: http://clip2net.com/s/1Fpb7

Рис из среды выполнения: http://clip2net.com/s/1FpbQ

1 Ответ

1 голос
/ 06 марта 2012

Задумывались ли вы об использовании DockPanel вместо StackPanel? Похоже, он больше подходит для макета, которого вы пытаетесь достичь:

    <DockPanel VerticalAlignment="Top">
        <Label Content="Loggedin as" Height="28" HorizontalAlignment="Left" Name="Loggedinas" />
        <Button Content="LogOut" Height="28" Name="Logout" Width="50" HorizontalAlignment="Right"/>
    </DockPanel>

Каждый раз, когда у вас есть поля, похожие на Margin="780,0,0,0", это обычно означает, что вы работаете слишком усердно, и есть лучший способ сделать это. В моих быстрых тестах на царапины левый край в 780 пикселей отталкивал кнопку от рамки.

...