模板控制可视性

时间:2014-11-12 14:48:17

标签: c# wpf xaml controltemplate

在mui base项目中,我声明了一个资源模板控件:

<ControlTemplate x:Key="loadingUserControlTemplate" TargetType="UserControl">
    <Grid x:Name="loadingContainer">
        <Border
                Opacity="0.5"
                BorderBrush="{TemplateBinding BorderBrush}"
                BorderThickness="{TemplateBinding BorderThickness}">

            <ContentPresenter />
        </Border>
        <mui:ModernProgressRing x:Name="loadingAnimation"
                                IsActive="true" 
                                Width="80" 
                                Height="80" 
                                Style="{StaticResource WaveProgressRingStyle}" 
                                VerticalContentAlignment="Center" />
    </Grid>
</ControlTemplate>

和基类作为用户控件:

public class LoadingUserControl : UserControl
{
    public bool _isLoading;

    public Boolean IsLoading
    {
        get { return _isLoading; }
        set
        {
            _isLoading = value;

            var loading = base.GetTemplateChild("loadingContainer") as Grid;

            if (loading != null)
            {
                if (value)
                {
                    base.IsEnabled = false;
                    loading.Visibility = Visibility.Visible;
                }

                else
                {
                    base.IsEnabled = true;
                    loading.Visibility = Visibility.Collapsed;
                }
            }
        }
    }
    public LoadingUserControl()
    {
        base.Template = (ControlTemplate)App.Current.FindResource("loadingUserControlTemplate");
    }
}

然后问题是当我崩溃我的网格,折叠父网格! 这是个好主意吗? 我的错在哪里?

1 个答案:

答案 0 :(得分:0)

使用loading.Visibility = Visibility.Hidden;不崩溃