为什么我的 XAML 突然崩溃了? [英] Why did my XAML suddenly crash?

查看:24
本文介绍了为什么我的 XAML 突然崩溃了?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在项目中创建的文件夹(视图")中向项目添加了基本页面".

I added a "Basic Page" to my project in a folder ("View") that I created within the project.

起初一切都很好,但突然"设计视图失败并显示:

At first all was well, but "all of a sudden" the design view failed and displayed:

System.ObjectDisposedException安全手柄已关闭

这是 XAML(我还没有更改生成的默认 XAML 中的任何内容):

This is the XAML (I hadn't changed a thing in the default XAML generated yet):

<common:LayoutAwarePage
    x:Name="pageRoot"
    x:Class="TimeAndSpaceLines.View.SectionPage"
    DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TimeAndSpaceLines.View"
    xmlns:common="using:TimeAndSpaceLines.Common"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Page.Resources>

        <!-- TODO: Delete this line if the key AppName is declared in App.xaml -->
        <x:String x:Key="AppName">My Application</x:String>
    </Page.Resources>

    <!--
        This grid acts as a root panel for the page that defines two rows:
        * Row 0 contains the back button and page title
        * Row 1 contains the rest of the page layout
    -->
    <Grid Style="{StaticResource LayoutRootStyle}">
        <Grid.RowDefinitions>
            <RowDefinition Height="140"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!-- Back button and page title -->
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>
            <TextBlock x:Name="pageTitle" Grid.Column="1" Text="{StaticResource AppName}" Style="{StaticResource PageHeaderTextStyle}"/>
        </Grid>

        <VisualStateManager.VisualStateGroups>

            <!-- Visual states reflect the application's view state -->
            <VisualStateGroup x:Name="ApplicationViewStates">
                <VisualState x:Name="FullScreenLandscape"/>
                <VisualState x:Name="Filled"/>

                <!-- The entire page respects the narrower 100-pixel margin convention for portrait -->
                <VisualState x:Name="FullScreenPortrait">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PortraitBackButtonStyle}"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>

                <!-- The back button and title have different styles when snapped -->
                <VisualState x:Name="Snapped">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedBackButtonStyle}"/>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="pageTitle" Storyboard.TargetProperty="Style">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPageHeaderTextStyle}"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    </Grid>
</common:LayoutAwarePage>

注意:我确实尝试根据TODO"(它在 app.xaml 中)删除appname"行,但这没有任何区别.应用通过 F6 成功构建,但尝试重新加载设计器失败.

Note: I did try removing the "appname" line according to the "TODO" (it is in app.xaml) but that made no difference. The app builds successfully via F6, but attempts to reload the designer fail.

第二次尝试,这次使用空白 xaml 页面,然后粘贴我在 Kaxaml 中拼凑起来的一些 XAML,也失败了,这次是错误消息:System.Exception无法注册包.(来自 HRESULT 的异常:0x80073CF6)"

A second attempt, this time using a Blank xaml page, and then pasting in some XAML I had cobbled together in Kaxaml, also fails, this time with the err msg: "System.Exception Package could not be registered. (Exception from HRESULT: 0x80073CF6)"

这个 XAML 是(被截断的):

This XAML is (truncated):

<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>
    . . .

???

推荐答案

我遇到了同样的问题,问题似乎是 VS 在开始调试之前尝试部署"您的任何应用程序.但是此部署可能会被 Windows 本地组策略禁止.因此,您需要执行后续步骤:

I had same issue, seems like problem is that VS trying to "deploy" any your application before it's starting debugging. But this deployment can be forbidden by Windows Local Group Policies. So you need to do next steps:

  1. 按 Win + X 打开运行对话框,输入 gpedit.msc 并按 Enter;
  2. 转到计算机配置">管理模板">Windows 组件">应用程序包部署";
  3. 双击允许安装所有受信任的应用程序",选择启用并选择确定;

这对我有帮助.

这篇关于为什么我的 XAML 突然崩溃了?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆