需要隐藏图片Page1.xaml当我将点击按钮Page2 c# wpf请需要示例代码
我正在尝试这个,但它没有任何工作
Page2.xaml.cs
private void Button_Click(object sender, RoutedEventArgs e)
{
Page1 p1 = new Page1();
p1.pic.Visibility = Visibility.Visible;
}
字符串
Page1.xaml与图片什么我需要隐藏
<Image x:Name="gear111" x:FieldModifier="public" HorizontalAlignment="Left" Height="114" VerticalAlignment="Top" Width="114" Source="/gear1.png" Margin="676,461,0,0" Grid.Column="1"/>
型
1条答案
按热度按时间46qrfjad1#
真希望能这么简单在WPF中,页面彼此隔离。换句话说,您的
Page2
不知道Page1
拥有哪些控件。你也不能通过这种方式隐藏Page1
上的控件,因为当你离开Page1
时,它会从内存中卸载,你所做的任何更改都会丢失(除非你保存它们)。此外,您最有可能通过使用new
示例来导航到Page1
,该示例重置页面状态(即,执行代码并再次加载图像)。您可以通过使用MVVM (Model-View-ViewModel)
来监视两个页面并将数据从一个页面传递到另一个页面,但是,我认为这种方法是徒劳的。但无论如何,这是如何做到的:ViewModel
类:字符串
Image
的Visibility
属性绑定到刚刚创建的ViewModel
类中定义的Visibility
属性:型
DataContext
添加到Page1
(您的图像所在的位置)。这将数据从ViewModel
类传递到Page1
上的Image
:型
Page2
上的Button_Click
事件中。单击该按钮时,将创建一个新的Window
示例,该示例显示对Page1
所做的更改。型
请注意,我上面提到的页面限制仍然适用于这里。您可以通过将
Visibility
中的更改保存到bool设置(在Properties
中的Settings.settings
中创建)或应用程序可以在加载页面之前读取的本地文本文件中,使Visibility
中的更改保持不变。我仍然强烈建议您熟悉
MVVM
(作为初学者,您不需要完全掌握它),并避免在不必要的情况下使用Windows/Pages。页面主要用于导航目的或通过Web浏览器查看。对于独立应用程序,MainWindow.xaml
是您所需要的;你只需添加更多就能实现你想要的。了解WPF的基础知识-UI Controls
,Properties
,Events
,Classes
,Data Binding
,Project Structure
等-将使您自己更容易。