Windows 如何在uwp中使用带内容对话控制的VisualStateManager

Windows 如何在uwp中使用带内容对话控制的VisualStateManager,windows,xaml,uwp-xaml,Windows,Xaml,Uwp Xaml,有没有办法在uwp应用程序中使用visualStateManager和内容对话控件。将所有弹出控件放在控件中,如下所示: 创建contentDialog控件并按如下方式使用在其中创建的用户控件: 现在只需从您想要的位置调用您的弹出窗口(contentDialog)。我调用了按钮单击事件,如图所示: 这对我来说很好,并帮助我创建了一个响应性弹出窗口,因为当主窗口收缩时,它会应用您在用户控件上应用的所有触发器 谢谢。你是说ContentDialogcontrol吗?是的。我很难使它响应。请帮助..请

有没有办法在uwp应用程序中使用visualStateManager和内容对话控件。

将所有弹出控件放在控件中,如下所示: 创建contentDialog控件并按如下方式使用在其中创建的用户控件: 现在只需从您想要的位置调用您的弹出窗口(contentDialog)。我调用了按钮单击事件,如图所示: 这对我来说很好,并帮助我创建了一个响应性弹出窗口,因为当主窗口收缩时,它会应用您在用户控件上应用的所有触发器


谢谢。

你是说
ContentDialog
control吗?是的。我很难使它响应。请帮助..请共享您的xaml以及您想要实现的功能我得到了解决方案..我们无法将可视状态触发器或包装面板应用于contentDialog,如果我们使用它,它将无法工作。解决方案是使用usercontrol控件创建弹出窗口,应用所有所需的触发器或包装面板,然后在contentdialog中输出该usercontrol。这是唯一能让它有响应性的方法。如果你找到了解决方案,你可以把答案贴在下面并标记自己。
`<Grid Background="White">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState>
                    <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="1000" />
                </VisualState.StateTriggers>
                <VisualState.Setters>

                </VisualState.Setters>
                </VisualState>

                <VisualState>
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="750" />
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Target="BlueRect.Visibility" Value="Visible" />
                        <Setter Target="RedRect.Visibility" Value="Collapsed" />
                    </VisualState.Setters>
                </VisualState>

                <VisualState>
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="500" />
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Target="BlueRect.Visibility" Value="Collapsed" />
                        <Setter Target="RedRect.Visibility" Value="Visible" />
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <StackPanel>
            <Rectangle x:Name="BlueRect" Width="50" Height="50" Fill="Blue" />
            <Rectangle x:Name="RedRect" Width="50" Height="50" Fill="Red" />
            <Button Content="Change Style" Width="500" Height="30" HorizontalAlignment="Center" VerticalAlignment="Bottom" Click="Button_Click" />
        </StackPanel>
    </Grid>`
`public sealed partial class MyUserControl1 : UserControl
    {
        public delegate void MyEventHandler(object source, EventArgs e);

        public static event MyEventHandler OnNavigateParentReady;

        public MyUserControl1()
        {
            this.InitializeComponent();            
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            OnNavigateParentReady(sender,null);
        }
    }`
` <Grid >
        <local:MyUserControl1 />
    </Grid>`
`public sealed partial class ContentDialog1 : ContentDialog
    {
        public ContentDialog1()
        {
            this.InitializeComponent();
            MyUserControl1.OnNavigateParentReady += test;
        }

        private void test(object source, EventArgs e)
        {
            Button bt = (Button)source;
            if (bt.IsEnabled == true)
            {
                this.Hide();
            }
        }
    }`
` ContentDialog1 popup = new ContentDialog1() { };
        public uc_test()
        {
            this.InitializeComponent();                       
        }

        private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            await popup.ShowAsync();
        }`