应用程序的设置屏幕正在抛出异常

时间:2015-08-28 12:56:19

标签: c# xaml windows-phone-8.1

我试图在手机8.1运行时使用设置弹出按钮来为应用程序生成设置屏幕。但是编译器抛出一个错误,我不知道为什么。这在手机8.0中运行良好,但似乎不是8.1运行时。

<SettingsFlyout
x:Class="popcornpk.Settings"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:popcornpk"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
IconSource="Assets/SmallLogo.png"
Title="CustomSetting"   >

<!-- This StackPanel acts as a root panel for vertical layout of the content sections -->
<StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >

    <!-- Toggle switch -->
    <StackPanel >
        <TextBlock Text="Toggle Switch" Style="{StaticResource TitleTextBlockStyle}"/>
        <TextBlock Margin="0,0,0,25" Text="Use toggle switches to let users set Boolean values." Style="{StaticResource BodyTextBlockStyle}"/>
        <ToggleSwitch Margin="-6,0,0,0" Header = "Download updates automatically" HorizontalAlignment="Left" HorizontalContentAlignment="Left"/>
        <ToggleSwitch Margin="-6,0,0,0" Header = "Install updates automatically" HorizontalAlignment="Stretch"/>
    </StackPanel>

    <!-- Button -->
    <StackPanel >
        <TextBlock Text="Push button" Style="{StaticResource TitleTextBlockStyle}"/>
        <TextBlock Text="Button label" Style="{StaticResource BodyTextBlockStyle}"/>
        <Button Margin="-3,0,0,0" Content="Clear"/>
        <TextBlock Margin="0,0,0,25" Text="With a push button, users initiate an immediate action." Style="{StaticResource BodyTextBlockStyle}"/>
    </StackPanel>

    <!-- ComboBox -->
    <StackPanel >
        <TextBlock Text="ComboBox" Style="{StaticResource TitleTextBlockStyle}"/>
        <TextBlock Margin="0,0,0,25" Text="Use the ComboBox to allow users to select one item from a set of text-only items." Style="{StaticResource BodyTextBlockStyle}"/>
        <ComboBox Header="State:" Margin="0,7,0,0" SelectedIndex="0" HorizontalAlignment="Left">
            <ComboBoxItem Content="Washington"/>
            <ComboBoxItem Content="Oregon"/>
            <ComboBoxItem Content="California"/>
        </ComboBox>
    </StackPanel>

    <!-- HyperlinkButton -->
    <StackPanel >
        <TextBlock Text="Hyperlink" Style="{StaticResource TitleTextBlockStyle}"/>
        <TextBlock Margin="0,0,0,25" Text="Use a hyperlink when the associated action will take the user out of this flyout." Style="{StaticResource BodyTextBlockStyle}"/>
        <HyperlinkButton Padding="-5,0,0,0" Content="View privacy statement" Tag="http://privacy.microsoft.com" HorizontalAlignment="Left"/>
    </StackPanel>

    <!-- TextBox -->
    <StackPanel >
        <TextBlock Text="TextBox" Style="{StaticResource TitleTextBlockStyle}"/>
        <TextBlock Margin="0,0,0,25" Text="Use a TextBox to allow users to enter text." Style="{StaticResource BodyTextBlockStyle}"/>
        <StackPanel Margin="0,7,0,0" Orientation="Horizontal">
            <TextBox HorizontalAlignment="Left" Width="150"/>
            <Button Margin="20,0,0,0" Content="Add"/>
        </StackPanel>
    </StackPanel>

    <!-- RadioButton -->
    <StackPanel>
        <TextBlock Text="Radio button group" Style="{StaticResource TitleTextBlockStyle}"/>
        <TextBlock Margin="0,0,0,25" Text="Lets users choose one item from a small set of mutually exclusive, related options." Style="{StaticResource BodyTextBlockStyle}"/>
        <TextBlock Text="Video quality" Style="{StaticResource BodyTextBlockStyle}"/>
        <RadioButton Margin="0,7,0,0" Content="High"/>
        <RadioButton Margin="0,17,0,0" Content="Medium"/>
        <RadioButton Margin="0,17,0,0" Content="Low"/>
    </StackPanel>
</StackPanel>

  

严重级代码说明项目文件行   错误CS0263'设置'的部分声明不能指定不同的基类popcornpk C:\ Users \ david \ Documents \ Visual Studio 2015 \ 81StoreLiveAppsPhoneOnlyLIVE \ popcornpk \ popcornpkhub \ popcornpk \ popcornpk \ obj \ Debug \ Settings.gics 15

我的基类与其他页面相同 注2

  

公共部分类设置:页面

我上面更改了设置并进行了编译,但是flyount没有工作或弹出,所以它不知道为什么它没有。

注2 为了避免混淆我不想要页面的基页我希望能够使用属于8.0的一部分的settingsflyout,显然微软虽然为8.1 UAP提供了这一点

2 个答案:

答案 0 :(得分:1)

例外情况告诉您需要知道的一切。

看看你的xaml。这是您文件的前两行:

<SettingsFlyout
    x:Class="popcornpk.Settings"

这表示你声明了一个名为popcornpk.Settings的新类(顺便说一句,命名空间应该是PascalCased),它扩展了基类SettingsFlyout

当你向应用程序添加一个新的xaml文件时,它实际上创建了三个文件 - .xaml文件,你编辑的.xaml.cs文件,以及一个神秘的短暂.gics文件,它保存了设计器生成的代码(例如,InitializeComponent())的实施。

.xaml.cs和.g.i.cs文件是部分类文件,由编译器组合。请注意异常消息所说的内容 -

  

“设置”的部分声明不得指定不同的基类

这些不同的基类是什么?

好吧,从xaml,我们可以看到第一个 - SettingsFlyout

从您的代码段

  

公共部分类设置:页面

我们看到另一个基类 - 页面

不确定你是如何搞砸的,但简单的解决方法是从.xaml.cs文件中删除基类声明:

public partial class Settings
{
    // snip

答案 1 :(得分:1)

除了肯定会解决错误的Will has said about partial classes之外,您可能无法在电话上使用SettingsFlyout - 请注意以下内容:

  

注意仅支持在Windows 8中与SettingsPane一起使用SettingsFlyout。虽然在Windows Phone项目中可以看到SettingsFlyout类型,但Windows Phone上不存在SettingsPane,因此不支持使用SettingsFlyout。