【发布时间】:2014-07-16 19:34:26
【问题描述】:
我的这个窗口有一个“关闭”按钮。
当我按下“关闭”按钮时,它只会隐藏蓝色窗口,而不会隐藏图像中的 2 个按钮。
我希望它隐藏一切。我已经附上了这两个类的 C# 代码以及所有按钮的 XAML 代码。
<local:KinectHoverButton Grid.Column="0" x:Name="leftbtn" Style="{StaticResource KinectHoverButtonScrollLeftStyle}" Click="PageLeftButtonClick" IsEnabled="{Binding ElementName=ControlsBasicsWindow, Path=PageLeftEnabled}"/>
<local:KinectHoverButton Grid.Column="2" x:Name="right_btn" Style="{StaticResource KinectHoverButtonScrollRightStyle}" Click="PageRightButtonClick" IsEnabled="{Binding ElementName=ControlsBasicsWindow, Path=PageRightEnabled}"/>
隐藏按钮的方法:
public partial class ImagesGrid : UserControl
{
public ImagesGrid()
{
InitializeComponent();
leftbtn.Visibility = System.Windows.Visibility.Hidden;
right_btn.Visibility = System.Windows.Visibility.Hidden;
}
public void btn()
{
leftbtn.Visibility = System.Windows.Visibility.Hidden;
right_btn.Visibility = System.Windows.Visibility.Hidden;
}
}
隐藏SelectionDisplay窗口的方法和btn方法的调用
private void OnCloseFullImage(object sender, RoutedEventArgs e)
{
// Always go to normal state before a transition
this.Visibility = System.Windows.Visibility.Hidden;
ImagesGrid img = new ImagesGrid();
img.btn();
}
我想让按钮可见的地方
else if (button.Tag is WineModel)
{
var wineModel = button.Tag as WineModel;
var selectionDisplay = new SelectionDisplay(wineModel);
this.kinectRegionGrid.Children.Add(selectionDisplay);
leftbtn.Visibility = System.Windows.Visibility.Visible;
right_btn.Visibility = System.Windows.Visibility.Visible;
e.Handled = true;
}
编辑:SelectionDisplay.xaml
<UserControl x:Class="Microsoft.Samples.Kinect.ControlsBasics.SelectionDisplay"
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:k="http://schemas.microsoft.com/kinect/2013"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="300"
Background="Transparent"
FontFamily="Segoe UI"
FontSize="30" Loaded="UserControl_Loaded">
<UserControl.Resources>
<Style TargetType="{x:Type TextBlock}" x:Key="labelStyle">
<Setter Property="FontSize" Value="15"/>
<Setter Property="Foreground" Value="Gray"/>
</Style>
<Style TargetType="{x:Type TextBlock}" x:Key="valueStyle">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontSize" Value="24"/>
</Style>
</UserControl.Resources>
<!--<Grid x:Name="layoutRoot">-->
<Grid x:Name="grid" Background="{StaticResource BlueBrush}" Width="auto">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Image x:Name="Display" HorizontalAlignment="Left"
VerticalAlignment="Center" Height="185" Width="293" Margin="50,0,10,0" Source="{Binding Image}" />
</Grid>
<StackPanel Grid.Column="1">
<TextBlock Text="Origin:" Style="{StaticResource labelStyle}"/>
<TextBlock Text="{Binding Origin}" Style="{StaticResource valueStyle}"/>
<TextBlock Text="Grapes" Style="{StaticResource labelStyle}"/>
<TextBlock Text="{Binding Grapes}" Style="{StaticResource valueStyle}"/>
<TextBlock Text="Color" Style="{StaticResource labelStyle}"/>
<TextBlock Text="{Binding Color}" Style="{StaticResource valueStyle}"/>
<TextBlock Text="Nose" Style="{StaticResource labelStyle}"/>
<TextBlock Text="{Binding Nose}" Style="{StaticResource valueStyle}"/>
<TextBlock Text="Price" Style="{StaticResource labelStyle}"/>
<TextBlock Text="{Binding Price, StringFormat='C'}" Style="{StaticResource valueStyle}"/>
</StackPanel>
<Grid Grid.Column="2">
<k:KinectCircleButton Style="{StaticResource CancelButtonStyle}" Foreground="White" Click="OnCloseFullImage"
VerticalAlignment="Top"/>
</Grid>
</Grid>
<!--</Grid>-->
【问题讨论】:
-
System.Windows.Visibility.Collapsed
-
@patrick,虽然这通常是一个更好的选择,但无论哪种方式都有“Visibility.Hidden”的用例,它不会影响我的回答中提到的按钮可见性。