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