Как рассчитать разрешение страницы? - PullRequest
0 голосов
/ 15 ноября 2011

У меня проблема с форматом таблицы. Высота и ширина главной страницы изменяются на 1024 X 760. Каждая строка и столбец разделены должным образом и имеют дополнительное пространство, но когда я отлаживаю программу, страница выглядит как половина страницы, покрытая невидимым «Нечто».

d:DesignWidth="640" d:DesignHeight="700"
           Title="ConsultationPage Page" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
    <Grid x:Name="LayoutRoot">
        <sdk:Label Height="28" HorizontalAlignment="Left" Name="lblCTitle" VerticalAlignment="Top" Width="50" Content="Consultation Hour" Margin="12,0,0,0" />
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="508,14,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="427,14,0,0" Name="button2" VerticalAlignment="Top" Width="75" />
        <Grid x:Name="TableLayoutRoot" Margin="-1,70,0,-70">
            <Grid.RowDefinitions>
                <RowDefinition Height="40">
                </RowDefinition>
                <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="20">
            </RowDefinition>
            <RowDefinition Height="*">
            </RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="*">
            </ColumnDefinition>
        </Grid.ColumnDefinitions>
            <sdk:Label Height="38" HorizontalAlignment="Left" Name="lblMonday" VerticalAlignment="Top" Width="200" Grid.Column="1" Grid.Row="0" FontSize="24"  Foreground="#B4000000" Content="Monday" FontFamily="Comic Sans MS" Margin="50,0,0,0"/>
            <sdk:Label Height="38" HorizontalAlignment="Left" Name="lblTuesday" VerticalAlignment="Top" Width="200" Grid.Column="2" Grid.Row="0" FontSize="24" Foreground="#B4000000" Content="Tuesday" FontFamily="Comic Sans MS" Margin="50,0,0,0"/>
            <sdk:Label Height="38" HorizontalAlignment="Left" Name="lblWednesday" VerticalAlignment="Top" Width="200" Grid.Column="3" Grid.Row="0" FontSize="24" Foreground="#B4000000" Content="Wednesday" FontFamily="Comic Sans MS" Margin="50,0,0,0"/>
            <sdk:Label Height="38" HorizontalAlignment="Left" Name="lblThursday" VerticalAlignment="Top" Width="200" Grid.Column="4" Grid.Row="0" FontSize="24" Foreground="#B4000000" Content="Thursday" FontFamily="Comic Sans MS" Margin="50,0,0,0"/>
            <sdk:Label Height="38" HorizontalAlignment="Left" Name="lblFriday" VerticalAlignment="Top" Width="200" Grid.Column="5" Grid.Row="0" FontSize="24" Foreground="#B4000000" Content="Friday" FontFamily="Comic Sans MS" Margin="50,0,0,0"/>
        </Grid>

1 Ответ

0 голосов
/ 16 ноября 2011

Я собираюсь выпустить вам XAML, чтобы попытаться выяснить, поможет ли он вам, потому что я до сих пор не совсем уверен, что вам нужно с вашим вопросом. Попробуйте использовать этот макет XAML:

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="28" />
        <RowDefinition Height="23" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="75" />
        <ColumnDefinition Width="75" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" Name="lblCTitle" VerticalAlignment="Top" Text="Consultation Hour" />
    <Button Grid.Row="1" Grid.Column="0" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" />
    <Button Grid.Row="1" Grid.Column="1" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" />
    <Grid x:Name="TableLayoutRoot" Grid.Row="2" Grid.ColumnSpan="3">
        <Grid.RowDefinitions>
            <RowDefinition Height="40" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="200">
            </ColumnDefinition>
            <ColumnDefinition Width="*">
            </ColumnDefinition>
        </Grid.ColumnDefinitions>
        <TextBlock HorizontalAlignment="Center" Name="lblMonday" VerticalAlignment="Top" Grid.Column="1" Grid.Row="0" FontSize="24"  Foreground="#B4000000" Text="Monday" FontFamily="Comic Sans MS" />
        <TextBlock HorizontalAlignment="Center" Name="lblTuesday" VerticalAlignment="Top" Grid.Column="2" Grid.Row="0" FontSize="24" Foreground="#B4000000" Text="Tuesday" FontFamily="Comic Sans MS" />
        <TextBlock HorizontalAlignment="Center" Name="lblWednesday" VerticalAlignment="Top" Grid.Column="3" Grid.Row="0" FontSize="24" Foreground="#B4000000" Text="Wednesday" FontFamily="Comic Sans MS" />
        <TextBlock HorizontalAlignment="Center" Name="lblThursday" VerticalAlignment="Top" Grid.Column="4" Grid.Row="0" FontSize="24" Foreground="#B4000000" Text="Thursday" FontFamily="Comic Sans MS" />
        <TextBlock HorizontalAlignment="Center" Name="lblFriday" VerticalAlignment="Top" Grid.Column="5" Grid.Row="0" FontSize="24" Foreground="#B4000000" Text="Friday" FontFamily="Comic Sans MS" />
    </Grid>
</Grid>

Я просто хочу указать на пару вещей здесь. Во-первых, похоже, что вы пытаетесь использовать Margin для позиционирования на ваших элементах управления. Это не способ делать вещи в макете на основе XAML с помощью Silverlight или WPF. Используйте <Grid> или научитесь использовать <StackPanel> или даже <DockingPanel> - вы обнаружите, что каждый из них подходит для определенных целей макета, и часто их сочетание идеально подходит для того, чтобы получить нужный макет. , Еще одна вещь, которую вы, вероятно, захотите сделать, чего я здесь не делал, - это использовать StaticResource или Style для размера шрифта, цвета и семейства - это позволит вам изменить эти настройки в одном месте. вместо многих (пять в данном случае).

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