Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 弹出式按钮更改页面';主题_C#_Windows Runtime_Windows Phone 8.1 - Fatal编程技术网

C# 弹出式按钮更改页面';主题

C# 弹出式按钮更改页面';主题,c#,windows-runtime,windows-phone-8.1,C#,Windows Runtime,Windows Phone 8.1,我正在努力解决WP8.1上的小问题-这花了一些时间,但最终我成功地将其本地化-假设我们有一个带有弹出按钮的按钮: 然后出现了一个问题—第一次单击按钮—效果很好,但当我们第二次单击它时,页面的主题将与弹出按钮一起变为灯光(在我们关闭弹出按钮后,更改的主题仍然存在,您将不得不重新加载页面)。它看起来或多或少像下图所示: 有人知道是什么导致了这个问题吗?有解决办法吗 如果有人想尝试-。我不知道为什么会发生这种情况,但您可以在加载页面时强制执行页面的请求主题: XAML +因此,当你强制主题时,问题

我正在努力解决WP8.1上的小问题-这花了一些时间,但最终我成功地将其本地化-假设我们有一个带有弹出按钮的按钮:

然后出现了一个问题—第一次单击按钮—效果很好,但当我们第二次单击它时,页面的主题将与弹出按钮一起变为灯光(在我们关闭弹出按钮后,更改的主题仍然存在,您将不得不重新加载页面)。它看起来或多或少像下图所示:

有人知道是什么导致了这个问题吗?有解决办法吗


如果有人想尝试-。

我不知道为什么会发生这种情况,但您可以在加载页面时强制执行页面的请求主题:

XAML


+因此,当你强制主题时,问题似乎消失了。但这不是我想要的解决方案-我不想强制主题,如果用户在应用程序运行时更改主题,这将失败。你解决过这个问题吗?我在Windows8.1中遇到了类似的问题。我使用了meresources,将FlyoutStyle的RequestedTheme设置为默认主题为深色,将Light设置为浅色,然后根据需要覆盖其他属性。不过目前还没有完全审查。@JimO'Neil没有,这似乎是一个bug,我还没有找到解决办法。现在,我已经用弹出按钮取代了弹出按钮——在我的例子中,弹出按钮非常简单,对UI影响不大。我希望这将在W10中得到纠正。它在W10中没有得到纠正。AppBarButton下的弹出按钮也存在同样的问题。但当我将主题设置为AppBarButton时,弹出按钮也发生了变化。@Alamakanambra很抱歉回复晚了-我当时正在度假。谢谢你的信息。我会给你一些更多的信息,一旦我做了一些测试(这可能需要一段时间)。谢谢。@Alamakanambra嗯。你在W10m下检查了项目的哪些方面?正如我在UWP上试过的,它现在似乎起作用了。
<Grid x:Name="LayoutRoot">
    <Button Content="reset" VerticalAlignment="Center">
        <Button.Flyout>
            <MenuFlyout Placement="Top">
                <MenuFlyoutItem Text="first item"/>
                <MenuFlyoutItem Text="second item"/>
            </MenuFlyout>
        </Button.Flyout>
    </Button>
</Grid>
public MainPage()
{
    this.InitializeComponent();
    this.DataContext = this; // without this works fine every button click
}
<Page
...
x:Name="myPage">
public MainPage()
{
    this.InitializeComponent();
    this.DataContext = this;

    if (App.Current.RequestedTheme == ApplicationTheme.Dark)
    {
        myPage.RequestedTheme = ElementTheme.Dark;
    }
    else
    {
        myPage.RequestedTheme = ElementTheme.Light;
    }
}