首页 > 解决方案 > 如何将 ContentDialog 添加到我的 XAML 而不会收到有关它的错误消息?

问题描述

根据我的问题here的答案,它指向这个例子,我在结尾的“Grid”和“Page”标签之间添加了以下内容:

<ContentDialog x:Name="termsOfUseContentDialog"
       PrimaryButtonText="Accept" IsPrimaryButtonEnabled="False"
       CloseButtonText="Cancel"
       Opened="TermsOfUseContentDialog_Opened">
    <ContentDialog.TitleTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Image Source="ms-appx:///Assets/SmallLogo.png" Width="40" Height="40" Margin="10,0"/>
                <TextBlock Text="Terms of use"/>
            </StackPanel>
        </DataTemplate>
    </ContentDialog.TitleTemplate>
    <StackPanel>
        <TextBlock TextWrapping="WrapWholeWords">
    <Run>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor
         congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus
         malesuada libero, sit amet commodo magna eros quis urna.</Run><LineBreak/>
    <Run>Nunc viverra imperdiet enim. Fusce est. Vivamus a tellus.</Run><LineBreak/>
    <Run>Pellentesque habitant morbi tristique senectus et netus et malesuada fames
         ac turpis egestas. Proin pharetra nonummy pede. Mauris et orci.</Run><LineBreak/>
    <Run>Suspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc.
         Mauris eget neque at sem venenatis eleifend. Ut nonummy.</Run>
        </TextBlock>
        <CheckBox x:Name="ConfirmAgeCheckBox" Content="I am over 13 years of age."
          Checked="ConfirmAgeCheckBox_Checked" Unchecked="ConfirmAgeCheckBox_Unchecked"/>
    </StackPanel>
</ContentDialog>

这是该页面上内容的逐字副本,仅作为一个起点,我将对其进行调整/自定义。

但是,它不编译。我收到这些错误消息:

在此处输入图像描述

我究竟做错了什么?

标签: uwp-xamlcontentdialog

解决方案


根据错误消息,duplication assignment to the Content property of the Page object这可能是由于在页面中添加了多个面板造成的。

通常,页面 xaml 应如下所示:

<Page
 ...some references here...
 >

<Grid x:Name="FirstGrid">

</Grid></Page>

您可以看到只有一个面板网格设置为页面的内容。

如果您向页面添加多个面板,如下所示:

<Page
... some references here...>

<Grid x:Name="FirstGrid">
    
</Grid>
<Grid x:Name="SecondGrid">

</Grid></Page>

然后你会得到错误。您需要删除页面中的第二个网格,并在页面内容中只保留一个面板。


推荐阅读