9

我在 Thisaddin.cs 中有这段代码

public void Search(string input)
{           
    ServerList listofservers = new ServerList();            
    listofservers.Visibility;                    
}

ServerList是一个带有列表框的简单 WPF 表单,但如何显示listofservers

我找不到listofserver.show();

在此处输入图像描述

4

3 回答 3

19

所以首先没有名为 WPF Form 的项目,只有 WPF 的用户控件。因此,一旦在 XAML 中创建 WPF UserControl,您就会注意到这是代码

<UserControl x:Class="SQL_openertak2.ServerList"
             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" 
             mc:Ignorable="d" d:DesignHeight="454" d:DesignWidth="259" SizeToContent="WidthAndHeight">
    <Grid>
        <ListBox Height="410" HorizontalAlignment="Left" Margin="12,12,0,0" Name="listBox1" VerticalAlignment="Top" Width="242" />
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="12,427,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>
</UserControl>

所以我查看了 XAML 代码。所以你可以看到整个事情是USERCONTROL 你必须将它更改为WINDOW然后你将能够看到.Show()

但请注意,您还必须更改 xaml.cs 中的代码

因为默认情况下会是这样

public partial class ServerList : UserControl

将其更改为

public partial class ServerList : Window

原因很明显!!:)

于 2012-04-16T13:32:01.657 回答
0

您还可以将其托管在布局面板中,例如:

  1. 在 Windows 窗体设计器中打开 Form1。
  2. 在工具箱中,将 TableLayoutPanel 控件拖到 for
  3. 在 TableLayoutPanel 控件的智能标记面板上,选择 Remove Last Row。
  4. 将 TableLayoutPanel 控件的大小调整为更大的宽度和高度。
  5. 在工具箱中,双击 UserControl1 以在 TableLayoutPanel 控件的第一个单元格中创建 UserControl1 的实例。
  6. UserControl1 的实例托管在名为 elementHost1 的新 ElementHost 控件中。
  7. 在工具箱中,双击 UserControl1 以在 TableLayoutPanel 控件的第二个单元格中创建另一个实例。
  8. 在“文档大纲”窗口中,选择 tableLayoutPanel1。有关详细信息,请参阅文档大纲窗口。
  9. 在“属性”窗口中,将 Padding 属性的值设置为 10、10、10、10。
  10. 两个 ElementHost 控件都调整大小以适应新布局。
于 2015-12-04T21:35:14.757 回答
0

如已在 XAML 和 c# 类中回答的那样,使用Window更改UserControl 。

请记住,在通常基于 Windows 窗体的 VSTO 应用程序中,务必记住将 System.XAML 添加到引用中,否则您可能会在编写窗体布局时遇到错误。

正如我最近经历的那样,这可能发生在 VS2015 中,向导过程没有按预期工作,缺少更新类引用。

这里有一些参考:'Window' 类型不支持直接内容

于 2019-05-13T11:46:32.753 回答