Freeman の本 "Metro Revealed" (ところで、100 ページ未満ではありますが、これまでに入手可能なものの中で最高のものです) から収集できるものに基づいて、設定フライアウト (ポップアップ) を実装しようとしています。
私はこの関連コードを持っています:
ポップアップがある/であるユーザーコントロール:
<UserControl
x:Class="TimeAndSpaceLines.View.TSLsSettings"
. . .
<Popup x:Name="popupSectionName" IsLightDismissEnabled="True" >
. . .
</Popup>
</UserControl>
「メイン」ページの xaml:
<common:LayoutAwarePage
x:Name="pageRoot"
. . .
xmlns:settingsflyout="using:TimeAndSpaceLines.View"
. . .
</Grid>
<settingsflyout:TSLsSettings x:Name="hubPageSettingsFlyout"/>
<VisualStateManager.VisualStateGroups>
. . .
「メイン」ページの関連する「コード ビハインド」:
public ItemsPage()
{
InitializeComponent();
SettingsPane.GetForCurrentView().CommandsRequested += OnSettingsPaneCommandRequested;
}
private void OnSettingsPaneCommandRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
// Add the commands one by one to the settings panel
args.Request.ApplicationCommands.Add(new SettingsCommand("commandSetSection1Name",
"Change the name of Section 1", SetAndSaveSectionNames));
. . .
}
ただし、この方法で開こうとすると:
private void SetAndSaveSectionNames(IUICommand command)
{
TimeAndSpaceLines.View.TSLsSettings.popupSectionName.IsOpen = true;
. . .
}
私は次のように迎えられました:
An object reference is required for the non-static field, method, or property
'TimeAndSpaceLines.View.TSLsSettings.popupSectionName'
と:
'TimeAndSpaceLines.View.TSLsSettings.popupSectionName' is inaccessible due to its protection level
YetpopupSectionName
はクラスではなく、それが存在するクラスは public です。私は何をすべきか?