【发布时间】:2015-07-22 11:50:49
【问题描述】:
我正在编写一个应用程序,它是一个测验,我有一个主窗口,我在其中加载不同的UserControls(页面)。所以我的问题是我在MainWindow 上有一张图片,我想将此图片的Visibility 从Collapsed 更改为Visible 从UserControls 之一但没有运气...
这是我的MainWindow:
<Window x:Class="MuseonQuiz_v3.PageSwitcher"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pages="clr-namespace:MuseonQuiz_v3.Pages"
xmlns:k="http://schemas.microsoft.com/kinect/2013"
Title="MainWindow" Height="710" Width="1127" IsEnabled="True" DataContext="{Binding}" FontFamily="KaiTi" ResizeMode="NoResize" WindowStyle="None"
WindowStartupLocation="CenterScreen" WindowState="Maximized">
<Grid>
<Grid>
<k:KinectRegion Name="kinectRegion">
<ContentControl x:Name="mainContentControl"/>
</k:KinectRegion>
</Grid>
<Grid>
<Grid.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisConverter" />
</Grid.Resources>
<k:KinectSensorChooserUI HorizontalAlignment="Center" VerticalAlignment="Top" Name="sensorChooserUi" />
<k:KinectUserViewer VerticalAlignment="Bottom" HorizontalAlignment="Center" k:KinectRegion.KinectRegion="{Binding ElementName=kinectRegion}" Height="600" Width="600" />
<Image Name="colorStreamImage" Width="640" Height="480" Visibility="Collapsed" HorizontalAlignment="Center" />
</Grid>
</Grid>
这是我的UserControl:
public partial class Selectie : UserControl, ISwitchable
{
string backgroundSelectie = "pack://application:,,,/MuseonQuiz_v3;component/Images/Selectie/selectie_background.jpg";
public Selectie()
{
InitializeComponent();
selectieBackground();
animatieButtons();
}
#region ISwitchable Members
public void UtilizeState(object state)
{
throw new NotImplementedException();
}
#endregion
}
我的问题是...如何从UserControl 中更改位于MainWindow 中的colorStreamImage 的Visibility... 我已尝试创建MainWindow 的实例,但这不起作用,也许我必须使用一些绑定,但我不确定,感谢您提供的任何帮助!
【问题讨论】:
-
在网上搜索 MVVM。然后创建一个由主窗口和具有可见性属性的 UserControl 共享的视图模型。将 Image Visibility 绑定到此属性,并从 UserControl 更改属性值。
-
谢谢,我试试看
-
我读到过,但概念对我来说仍然不清楚,你能举个例子吗?
-
您需要对
MainWindow的当前实例的引用,并从该引用访问您的Image以设置Visibility属性。
标签: c# wpf xaml user-controls