C# 更改a";开关";从windows窗体到WPF
昨天我们想出了如何让列表框的内容在我叠在一起的不同面板之间切换的方法。这次我尝试在WPF中做同样的事情,显然语法是不同的。该代码在windows窗体中100%正确运行。我尝试了几种不同的方法来显示现在的“网格”,但没有效果。C# 更改a";开关";从windows窗体到WPF,c#,wpf,listbox,grid,C#,Wpf,Listbox,Grid,昨天我们想出了如何让列表框的内容在我叠在一起的不同面板之间切换的方法。这次我尝试在WPF中做同样的事情,显然语法是不同的。该代码在windows窗体中100%正确运行。我尝试了几种不同的方法来显示现在的“网格”,但没有效果。 提前谢谢 当前代码“尝试”。我只是演示了我在第一个“案例”中尝试更改代码的几种方法 下面是在windows窗体中工作的代码 私有无效列表框1\u SelectedIndexChanged(对象发送方,System.EventArgs e) { 等等等等……您在WPF中的操作
提前谢谢 当前代码“尝试”。我只是演示了我在第一个“案例”中尝试更改代码的几种方法 下面是在windows窗体中工作的代码 私有无效列表框1\u SelectedIndexChanged(对象发送方,System.EventArgs e) {
等等等等……您在WPF中的操作方式与在WinForms中的操作方式不同 在WPF中,您可能在WPF中有一个控件,而在WinForms中有3个,并且控件用于呈现的模板将根据列表框的
SelectedItem
而改变
控件定义很可能看起来像这样,因此它的内容绑定到列表框。SelectedItem
:
<ContentControl Content="{Binding ElementName=listBox1, Path=SelectedItem}" />
(我这里可能有您需要的确切绑定的语法错误…可能需要一些测试)您需要包括网格的XAML。这是我尝试创建的第一个WPF…我不知道这意味着什么。感谢您的时间和努力!:)
// set the listboxselected item to a string variable
string curItem = listBox1.SelectedItem.ToString();
curItem = listBox1.SelectedItem.ToString();
// variable changes depening on mouse click, sets to whichever string value is selected
switch(curItem)
{
case "General" :
panel1.Visible = false;
panel2.Visible = true;
panel3.Visible = false;
panel4.Visible = false;
panel5.Visible = false;
break;
<ContentControl Content="{Binding ElementName=listBox1, Path=SelectedItem}" />
<Style TargetType="{x:Type ContentControl}">
<!-- // Default Template -->
<Setter Property="ContentTemplate" Value="{StaticResource GeneralTemplate}" />
<!-- // Change template depending on a property -->
<Style.Triggers>
<Trigger Property="Content" Value="ESnaps">
<Setter Property="ContentTemplate" Value="{StaticResource ESnapsTemplate}" />
</Trigger>
<Trigger Property="Content" Value="Mouse">
<Setter Property="ContentTemplate" Value="{StaticResource MouseTemplate}" />
</Trigger>
</Style.Triggers>
</Style>