我这个窗口有一个“关闭”按钮。
http://oi62.tinypic.com/a40oci.jpg
当我按下“关闭”按钮时,它只隐藏蓝色窗口而不隐藏图像中的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>-->
答案 0 :(得分:2)
此代码(来自关闭处理程序)
ImagesGrid img = new ImagesGrid();
img.btn();
创建全新&#34; ImagesGrid&#34;,然后指示它隐藏。您需要获得对现有&#34; ImagesGrid&#34;的引用。并在其上调用btn
方法。
因为他们被捆绑在一起,所以我会做出#34;滚动&#34;按钮包含&#34;关闭&#34;的同一用户控件的一部分。按钮,完全避免问题。如果你真的想传递参考文献:
如果您的主要用户控件具有&#34; ImagesGrid&#34;
<local:ImagesGrid Name="ScrollButtons"/>
然后你会写:
ScrollButtons.btn();
当然,这会导致问题,因为您的其他用户控件可能无法访问&#34; ScrollButtons&#34;所以你需要传递一个引用你的&#34; View&#34; class(或ScrollButtons对象本身)在创建&#34; main&#34;用户控制等等。它变得非常混乱,这就是为什么我只想将两者结合起来!