首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wpf propertyGrid

wpf propertyGrid
EN

Stack Overflow用户
提问于 2009-11-02 20:40:23
回答 4查看 17.7K关注 0票数 4

我的WPF应用程序需要一个propertyGrid。经过多次搜索,我找到了this,我已经添加了程序集(exe文件),当我将propertyGrid添加到我的窗体中并运行它时,我在窗体中看不到它。xaml代码:

代码语言:javascript
复制
<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>

代码隐藏:

代码语言:javascript
复制
private void btn_Click(object sender, RoutedEventArgs e)
        {
            property.Instance = btn;
        }

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-02 23:54:37

这是由于WPFPropertyGrid代码中的错误造成的。

从他的ThemeInfoAttribute中可以看出,该代码的作者打算使用通用主题,但他错误地将资源放在了文件"Themes/default.xaml“中,而不是"Themes/generic.xaml”中。因此,资源不会自动加载。他通过从他的App.xaml手动加载资源来解决这个bug。

当您从您的.exe引用他的App.xaml时,他的his没有加载,因此他的变通方法没有激活。

最好的解决方案是将原始代码中的文件名更正为“主题/Generic.xaml”。如果这是不可能的,第二个最好的解决方案是手动从App.xaml加载资源:

代码语言:javascript
复制
  <Application.Resources>

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

  </Application.Resources>

或者,如果您愿意,可以将其放在窗口的标记中。

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

祝你有愉快的一天!

票数 7
EN

Stack Overflow用户

发布于 2011-10-26 02:30:10

我知道这是一个老帖子,但现在有了一个新的PropertyGrid,它是功能最强大、功能最丰富的一个。哦,它是免费的!

http://wpftoolkit.codeplex.com/

票数 18
EN

Stack Overflow用户

发布于 2015-10-22 20:06:11

对于任何感兴趣的人,我已经开始了一个简单的-但我希望有用的-免费和开源的PropertyGrid项目。

源代码可以在这里找到:https://github.com/SoftFluent/SoftFluent.Windows,还有一个nuget包在这里:https://www.nuget.org/packages/SoftFluent.Windows

它没有依赖项,但需要.NET 4,因为它使用的是WPF的.NET 4 DataGrid class

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1661077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档