我的UserControls
中有两个MainWindow
,如图所示。
<local:_SplashScreenModal x:Name="_SplashModalControl" Visibility="Visible" />
<local:_LoginModal x:Name="_loginModalControl" Visibility="Collapsed" />
一个是启动画面用户控件,另一个是登录表单用户控件。 我的挑战现在是,我的启动画面有一个进度条,进度条也有一个事件,如图所示。
<ProgressBar Grid.Row="1" Name="loading" BorderBrush="Transparent" Background="Transparent" Margin="0,10,0,20" Foreground="White" Width="300" Height="3">
<ProgressBar.Triggers>
<EventTrigger RoutedEvent="ProgressBar.Loaded">
<BeginStoryboard>
<Storyboard Completed="Storyboard_Completed" BeginTime="00:00:01">
<DoubleAnimation From="0.0" To="100.0" Duration="00:00:6" Storyboard.TargetProperty="(ProgressBar.Value)" >
<DoubleAnimation.EasingFunction>
<CircleEase />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ProgressBar.Triggers>
</ProgressBar>
事件Completed="Storyboard_Completed"
必须折叠启动画面并使登录表单usercontrol在MainWindow
中保持可用,但我不知道该怎么做,我真的需要帮助。提前谢谢。
答案 0 :(得分:1)
您可以使用Window.GetWindow
方法获取对父窗口的引用,然后设置另一个Visibility
的{{1}}属性,前提是您可以在窗口类之外使用它。
您可以通过在XAML中将UserControl
属性设置为x:FieldModifier
或public
或通过代码隐藏的属性公开它来实现此目的。
<强> MainWindow.xaml:强>
internal
<强> SplashScreenModal.xaml.cs:强>
<local:_LoginModal x:Name="_loginModalControl" Visibility="Collapsed" x:FieldModifier="public" />