WPF 属性网格

4

我需要一个用于WPF应用的属性网格。在经过多次搜索后,我找到了这个。 我已经添加了程序集(exe文件),但当我将属性网格添加到我的表单并运行它时,我无法在表单中看到它。 XAML代码:

<Window x:Class="propertyGridTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpg="clr-namespace:Deepforest.WPF.Controls;assembly=WPGDemo"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Button x:Name="btn" Click="btn_Click" Height="35.5" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="55"></Button>
        <wpg:PropertyGrid x:Name="property" Width="100" Height="100"> </wpg:PropertyGrid>
    </Grid>
</Window>

代码后台:

private void btn_Click(object sender, RoutedEventArgs e)
        {
            property.Instance = btn;
        }

请帮我找出为什么它不可见

4个回答

17

我知道这是一个旧帖子,但现在有一个全新的PropertyGrid出现了,它是功能最强大、最具特色的。而且它是免费的!

http://wpftoolkit.codeplex.com/

enter image description here


1
该存档已迁移到https://github.com/xceedsoftware/wpftoolkit,并且不再免费(需要商业许可证)。 - Zak A. Klajda

7
这是由于WPFPropertyGrid代码中的一个错误导致的。
从ThemeInfoAttribute可以看出,该代码的作者打算使用通用主题,但错误地将资源放在了"Themes/default.xaml"文件中,而不是"Themes/generic.xaml"文件中。因此,这些资源没有被自动加载。他通过从App.xaml手动加载资源来解决了这个问题。
当您从自己的exe引用他的时候,他的App.xaml没有被加载,所以他的解决方法没有被激活。
最好的解决方案是在原始代码中更正文件名为"Themes/generic.xaml"。如果不可能,第二好的解决方案是从您的App.xaml手动加载资源:
  <Application.Resources>

    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/WPGDemo;Component/Themes/Default.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

  </Application.Resources>

或者,如果您喜欢,您可以将此放入窗口中的标签。

请注意,上面的XAML假定将使用其他资源,因此需要合并。如果没有,则可以跳过创建单独字典和合并的步骤,而是将WPGDemo字典设置为您的应用程序或窗口字典。

祝你有美好的一天!


1

-3
你有在下载页面阅读文档吗? WPF Property Grid Download Page 看起来你需要引用你想要编辑的属性,例如像这样:
<wpg:PropertyGrid Width="550" Height="550" Instance="{Binding ElementName=button}" />
<Button x:Name="button" Content="Click" />

1
是的,我的朋友,我读了它,但没有帮助。问题在于当我将控件放入我的表单中时,控件似乎不可见!谢谢。 - Asha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接