在我的窗口上,我有一个ViewBox控件,其中包含一个自定义进度条。我在设计模式下将其Visibility设置为Collapsed,因为我需要在某个时刻(登录到app期间)显示它。
在我的进度条中,即usercontrol,我有VisibilityChanged事件的事件处理程序,我停止并启动动画。
当用户点击“登录”按钮时,我需要在登录完成之前显示此ViewBox,并在成功后再次将其折叠。但是,当我(在代码后面)设置ViewBox.Visibility = Visible时,它不会显示。
有人可以告诉我为什么或如何解决它?
XAML:
<Viewbox x:Name="cpProgress" Width="50" Height="50" HorizontalAlignment="Center" VerticalAlignment="Bottom" Grid.Row="1" Visibility="Collapsed" >
<lc:CircularProgress />
</Viewbox>
由于
答案 0 :(得分:1)
将ViewBox.Visibility = Visible
更改为cpProgress.Visibility = Visible
,并确保网格具有为第1行定义的正确行高。
答案 1 :(得分:0)
我终于解决了这个问题。这真的很简单:)。
我忘记了如果我在同一个线程中运行登录过程,就像我的窗口所在,UI将一直挂起,直到登录完成。所以解决方案是生成一个新线程,在其上下文中运行登录并等待在UI的线程中设置completed
标志。登录过程必须以异步方式运行,因此UI可以绘制我的用户控件。