单击设计器时始终选择RadBusyIndi​​cator

时间:2012-12-28 21:13:45

标签: wpf visual-studio-2010 xaml telerik

我的UserControl上有一个RadBusyIndi​​cator,如下所示:

<Grid>
    <!-- Other Content -->
    <t:RadBusyIndicator IsBusy="{Binding IsBusy}"></t:RadBusyIndicator>
</Grid>

每当我点击设计视图时,它就会转到BusyIndi​​cator。

我可以将Panel.ZIndex设置为负数以选择“其他内容”,但这会导致RadBusyIndi​​cator落后于“其他内容”

我尝试使用ZIndex的绑定,如下所示:

<t:RadBusyIndicator Panel.ZIndex="{Binding BusyZIndex}" IsBusy="{Binding IsBusy}"></t:RadBusyIndicator>

但它没有帮助。

所以问题是:

如何将RadBusyIndi​​cator放在所有“其他内容”的“顶部”上,但仍然可以单击(在设计器中)并转到该控件的xaml行?

1 个答案:

答案 0 :(得分:1)

BusyIndi​​cator需要在“顶部”位于控件前面。这使它在设计师中也处于领先地位。

可能有更好的方法来解决这个问题,但我想到的是将BusyPanel作为UserControl上的资源,然后将其添加到网格控件OnApplyTemplate或由代码加载。

这是UserControl的XAML。

<UserControl x:Class="WpfApplication2.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:t="REFERENCE.TO.THE.RAD.ASSEMBLY" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <UserControl.Resources>
        <t:RadBusyIndicator x:Key="TheBusyIndicator" IsBusy="{Binding IsBusy}">
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot">
        <Button Content="Some content to the button"
                Height="25"
                Width="200"/>
    </Grid>
</UserControl>

我已将BusyIndi​​cator添加为具有密钥“TheBusyIndi​​cator”的资源。 我还在网格中添加了x:Name =“LayoutRoot”,它将包含BusyIndi​​cator。 如果Grid实际上不是布局根控件,那么Grid当然可以有另一个名称。

最后将BusyIndi​​cator添加到Children集合中,它将显示在标记代码添加的所有其他控件的前面。

以下是代码

UserControl的构造函数:

public UserControl1()
{
    this.Loaded += new RoutedEventHandler(UserControl1_Loaded);
}

反复代码:

private void UserControl1_Loaded(object sender, RoutedEventArgs e)
{
    this.LayoutRoot.Children.Add(this.Resources["TheBusyIndicator"] as RadBusyIndicator);
}

我再也不会使用UserControls了,只有在XAML转到“Generic.xaml”的CustomControls中,我没有编辑工作。所以我暂时没有看到这个问题。