2012-12-28 89 views
1

RadBusyIndi​​cator總是選擇我有我的用戶一個RadBusyIndi​​cator像這樣:當設計師點擊

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

每當我在設計視圖中單擊它去BusyIndi​​cator控件。

我可以設置Panel.ZIndex爲負,選擇「其他內容」,但這樣會導致RadBusyIndi​​cator是背後的「其他內容」

我使用的Z-索引像這樣綁定嘗試:

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

但它沒有幫助。

所以,問題是:

我怎麼有RadBusyIndi​​cator上「頂級」所有的「其他內容」,但仍可以點擊(在設計),去了的XAML行控制?

+0

更好的方法是使用'd:IsHidden =「true」' – jbarker

回答

1

BusyIndi​​cator需要「在上面」才能在控件之前。這使得它在設計師中也處於頂峯。

可能有更好的方法來解決這個問題,但是想到的是在UserControl上使BusyPanel成爲資源,然後將其添加到網格控件OnApplyTemplate或Loaded by代碼中。

這裏是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實際上不是佈局根控件,那麼當然可以使用其他名稱。

通過最後將BusyIndi​​cator添加到Children集合中,它將出現在由標記代碼添加的所有其他控件的前面。

下面是代碼

用戶控件的構造函數:

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

的execting代碼:

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

我從來沒有使用用戶控件了,只有CustomControls在XAML去「通用.xaml「,我沒有編輯工作。所以我暫時還沒有看到這個問題。

+0

像冠軍一樣工作! 謝謝:) – jbarker

+0

非常好:-)很高興我能幫忙! –