从代码中设置ViewBox的可见性

时间:2013-02-05 12:54:40

标签: c# wpf visibility viewbox

在我的窗口上,我有一个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>

由于

2 个答案:

答案 0 :(得分:1)

ViewBox.Visibility = Visible更改为cpProgress.Visibility = Visible,并确保网格具有为第1行定义的正确行高。

答案 1 :(得分:0)

我终于解决了这个问题。这真的很简单:)。 我忘记了如果我在同一个线程中运行登录过程,就像我的窗口所在,UI将一直挂起,直到登录完成。所以解决方案是生成一个新线程,在其上下文中运行登录并等待在UI的线程中设置completed标志。登录过程必须以异步方式运行,因此UI可以绘制我的用户控件。