2011-09-07 67 views
1

我有我最初设置为自定义控制倒塌像这样Visibility.Collapsed仍呈现内容

<local:SpriteButton Content="Why?" x:Name="showReason" Click="showReason_Click" Margin="418,12,12,656" Visibility="Collapsed" /> 

但是当我运行的应用中的内容,在这种情况下是“为什么?”出现在那里,但包括它的内容的整个UserControl需要被隐藏。

这是为什么?

精灵Button类看起来像这样

<Button x:Class="AppNameSpace.MyControls.SpriteButton" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:AppNameSpace.MyControls" 
    mc:Ignorable="d" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="White" 
    Loaded="Button_Loaded" 
    HorizontalAlignment="Center" VerticalAlignment="Center" 
    MouseLeftButtonDown="Button_MouseLeftButtonDown" 
    MouseLeave="Button_MouseLeave" 
    ClickMode="Hover" 
> 

    <Button.Resources> 
     <Style x:Key="PhoneButtonCheckBoxBase" TargetType="Button"> 
      <Setter Property="Background" Value="{StaticResource PhoneRadioCheckBoxBrush}"/> 
      <Setter Property="BorderBrush" Value="{StaticResource PhoneRadioCheckBoxBrush}"/> 
      <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMedium}"/> 
      <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/> 
      <Setter Property="HorizontalContentAlignment" Value="Left"/> 
      <Setter Property="VerticalContentAlignment" Value="Center"/> 
      <!--Setter Property="Padding" Value="-10"/--> 
     </Style> 
     <Style x:Key="RectButton" TargetType="Button"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Grid Background="Transparent"> 
          <Grid> 
           <local:spriteView HorizontalAlignment="Center" Sprite="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=currentSprite}" /> 

           <ContentControl x:Name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" /> 
          </Grid> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Button.Resources> 


    <Button.Style> 
     <StaticResource ResourceKey="RectButton"/> 
    </Button.Style> 

</Button> 

SpriteView又是我使用其他自定义控制,但隐藏正确,它下面的ContentControl中总是显示出来。

+1

SpriteButton是如何定义的? VisualState中有什么? –

+4

您将不得不张贴一些显示UserControl定义的XAML。 – Praetorian

+0

是直接或间接从UIElement继承的sprite按钮? – tam

回答

0

这个问题需要更多的代码来显示你的意思......

如果你试图掩盖它需要与父也被隐藏子控件或容器。

这至少是什么听起来像你的要求,请张贴更多,所以我们可以帮助你。 :)