我必须弹出/ ContentDialog有哪些替代方法? (C#,XAML)

时间:2018-08-01 06:47:54

标签: c# xaml uwp uwp-xaml flyout

我目前有一个程序,可以在其中加载文本。

现在,我创建了一个弹出弹出按钮/ ContentDialog的按钮,但我对此并不满意,因为这限制了我试图实现的目标。

当我单击按钮时,它将打开弹出窗口,该弹出窗口将获得完整的Focus。这意味着我无法滚动至弹出框打开时的文本。如果我在弹出框外单击,弹出框就会消失。

我有一个类似于ContentDialog的问题。 当我单击按钮并弹出ContentDialog时,ContentDialog后面的所有内容都会变成白色/灰色。此外,ContentDialog不允许ContentDialog本身之外的任何Focus。

那我想拥有什么?

我希望当我单击出现窗口的按钮时。我应该能够自定义窗口(在其中写入文本,并且应该有一个按钮)。 当此窗口打开时,我希望能够在不关闭窗口的情况下在该窗口外执行操作。例如,滚动浏览我加载的文本。

有什么我可以实现的吗?

2 个答案:

答案 0 :(得分:0)

看看Popup类。这样一来,您就可以在应用程序窗口的其他内容之上显示内容。它与Flyout相似,但是没有您不想要的所有内置Flyout行为。 Popup class documentation包含有关何时以及如何使用它的更多详细信息和评论。

这是一个没有样式的非常平淡的例子。

<Grid>
    <Popup x:Name="popup">
        <StackPanel>
            <TextBlock Text="Poppity pop pop" />
            <Button Click="ClosePopup_Click">Close</Button>
        </StackPanel>
    </Popup>
    <Button Click="OpenPopup_Click">Open Popup</Button>
</Grid>

private void OpenPopup_Click(object sender, RoutedEventArgs e)
{
    popup.IsOpen = true;
}

private void ClosePopup_Click(object sender, RoutedEventArgs e)
{
    popup.IsOpen = false;
}

Popup documentation

中有一个稍微复杂的示例

答案 1 :(得分:0)

我只是隐藏并显示任何我想要的网格。