2

今朝、もう一度 C#/XAML アプリを実行しようとしました (以前の問題はこちらに記載されています:なぜ XAML が突然クラッシュしたのですか? )。

今回は、少なくとも「メンバー "ShowGridLines" が認識されていないか、アクセスできません」という特定のエラー メッセージが表示されました。および「ラベルは Windows アプリ プロジェクトではサポートされていません。」

完全な XAML は次のとおりです。

<Page
    x:Class="TimeAndSpaceLines.View.SectionN"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TimeAndSpaceLines.View"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid MinHeight="600" ShowGridLines="True" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="320"></ColumnDefinition>
                <ColumnDefinition MaxWidth="800"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    
<RowDefinition/>                    

            </Grid.RowDefinitions>
            <StackPanel Orientation="Horizontal">
                <Label MinWidth="40" Content="From"></Label>
                <TextBox x:Name="textBoxFromDate" MinWidth="120">
                </TextBox>
            </StackPanel>
            <StackPanel Grid.Row="1" Orientation="Horizontal">
                <Label MinWidth="40">at
                </Label>
                <TextBox x:Name="textBoxFromTime" MinWidth="120" Grid.Row="1">
                </TextBox>
            </StackPanel>
            <StackPanel Grid.Row="2" Orientation="Horizontal">
                <Label MinWidth="40">To
                </Label>
                <TextBox x:Name="textBoxToDate" MinWidth="120">
                </TextBox>
            </StackPanel>
            <StackPanel Grid.Row="3" Orientation="Horizontal">
                <Label MinWidth="40">at
                </Label>
                <TextBox x:Name="textBoxToTime" MinWidth="120" Grid.Row="1">
                </TextBox>
            </StackPanel>
            <Button
         x:Name="buttonFindLocForDateRange"
         MaxWidth="200"
         Grid.Row="4"
         Content="Find Location for Date Range">
            </Button>
            <Label
         x:Name="labelPerson1_Red"
         Grid.Row="5"
         Content="(Person1_Red)"
         Foreground="Red">
            </Label>
            <Label
         x:Name="labelPerson2_Orange"
         Grid.Row="6"
         Content="(Person2_Orange)"
         Foreground="Orange">
            </Label>
            <Label
         x:Name="labelPerson3_Yellow"
         Grid.Row="7"
         Content="(Person3_Yellow)"
         Foreground="Yellow">
            </Label>
            <Label
         x:Name="labelPerson4_Green"
         Grid.Row="8"
         Content="(Person4_Green)"
         Foreground="Green">
            </Label>
            <Label
         x:Name="labelPerson5_Blue"
         Grid.Row="9"
         Content="(Person5_Blue)"
         Foreground="Blue">
            </Label>
            <Label
         x:Name="labelPerson6_Indigo"
         Grid.Row="10"
         Content="(Person6_Indigo)"
         Foreground="Indigo">
            </Label>
            <Label
         x:Name="labelPerson7_Violet"
         Grid.Row="11"
         Content="(Person7_Violet)"
         Foreground="Violet">
            </Label>
            <StackPanel Grid.Column="1" Orientation="Horizontal">
                <Image>
                </Image>
                <Label>Prev
                </Label>
                <Label x:Name="labelSectionN" Content="(Section N)">
                </Label>
                <Label>Next
                </Label>
            </StackPanel>
            <!-- Add a Bing Map component: Grid.Column="1" Grid.Row="1" Grid.RowCount="11" -->
        </Grid>
</Page>

注: 唯一の違いは、XAML の初期部分と名前空間部分が次のとおりであることです。

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

...そして、Grid プロパティに Background="{StaticResource ApplicationPageBackgroundThemeBrush}" がないことを確認すると、この XAML は Kaxaml で適切に表示されます (今のところ非常に見苦しいですが、この時点では予想されることです)。

4

1 に答える 1

2

WPF アプリでのみサポートされ、WinRT ではサポートされない XAML を作成しました。
WinRT には Label コントロールが含まれておらず、Grid には ShowGridLines プロパティがないため、コードが正しく機能していません。

WPF と WinRT は 2 つの別個のテクノロジです。どちらもたまたま XAML を使用してユーザー インターフェイスを作成していますが、WPF で記述された XAML が WinRT で機能するとは期待できません。

于 2012-10-31T19:51:01.850 に答える