我是WPF中的新手,想创建像cookbook这样的wpf应用程序。我已经完成了此操作,并且应用程序正常工作。但是我以这种方式做到了:
第一个屏幕显示按钮,该按钮打开了新的窗口来做某事。结果,我有14个不同的窗口。没关系,但是现在我想以其他方式进行。
我正在尝试制作一个窗口,这将在开始时显示并更改内容。我在两个网格上划分了窗户。首先是静态的,并放在底部。它包含表示程序功能的按钮。第二个将是动态的。我想在那里显示每个窗口的内容。因此,我想更改此面板的内容,而不是创建新窗口。
我尝试制作 *.cs文件,该文件将在代码,函数和数据中创建控件。但是我的想法不是成功的,我不知道该怎么做。
我想创建应用程序,它将像这样起作用: - 如果单击按钮"添加收据",则应用将显示控件以添加名称,成分并在末尾保存。 - 如果您clik" show receip",则将用成分列表替换
和等。
我希望你能理解我。
您可以创建一个帧而不是第二个网格。框架使您可以在框架本身中显示页面,而不是在框架本身中显示的页面。您可以像
一样将框架导航到页面mainFrame.Source = new Uri("Page1.xaml",UriKind.Relative);
这将框架更改为您的页面。如果您想再次更改页面,则可以再次更改源。
注意:您可以将标签添加到" ShowReceip"之类的按钮中,您只需为按钮做一个按钮即可事件。代码看起来像这样。
mainFrame.Source = new Uri((sender as Button).Tag.ToString() + ".xaml",UriKind.Relative);
在单击按钮的标签上,在其上添加字符串" .xAML"并将其放在源部分上。因此,如果您的标签是" Page1",源将看起来像" Page1.xaml"作为我的解决方案。
感谢尝试,希望您正在寻找WPF用户控件,而不是为单独的窗口。用户控件与Windows相似,您可以在用户控件中创建UI和功能。我想建议您按以下方式设计主窗口:
<Grid>
<Canvas Name="canFunctionalButtons">
<!--Define the buttons inside this canvas
And allocate proper place for this in the UI
-->
</Canvas>
<Canvas Name="canControlContainer">
<!--This is to display the user control
Which can be changed dynamically according to the Button's click
-->
</Canvas>
</Grid>
然后,您必须为这些按钮添加单击事件,该按钮将将特定的用户控件添加到canControlContainer
画布中。将用户控件添加到此画布的一个示例如下,令btnAddSomething
为一个按钮,btnAddSomething_Click
是单击事件,然后您可以执行以下操作:
private void btnAddSomething_Click(object sender, RoutedEventArgs e)
{
canControlContainer.Children.Clear(); // will remove previous contols from this canvas
// UC_AddSomething be the user control that you wanted to add here
canControlContainer.Children.Add(new UC_AddSomething());
}