我的WPF应用程序需要一个propertyGrid。经过多次搜索,我找到了this,我已经添加了程序集(exe文件),当我将propertyGrid添加到我的窗体中并运行它时,我在窗体中看不到它。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;
}请帮我找出为什么它看不见
发布于 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加载资源:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/WPGDemo;Component/Themes/Default.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>或者,如果您愿意,可以将其放在窗口的标记中。
请注意,上面的XAML假设将使用其他资源,因此合并将是必要的。如果没有,您可以跳过创建单独字典和合并的步骤,只需将WPGDemo字典设置为您的应用程序或窗口字典即可。
祝你有愉快的一天!
发布于 2011-10-26 02:30:10
我知道这是一个老帖子,但现在有了一个新的PropertyGrid,它是功能最强大、功能最丰富的一个。哦,它是免费的!
http://wpftoolkit.codeplex.com/

发布于 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。
https://stackoverflow.com/questions/1661077
复制相似问题