我试图在手机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提供了这一点
答案 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。