2009-11-02 2 views
3

Мне нужно свойствоGrid для моего приложения WPF. после многих поисков я нашел this Я добавил сборку (exe-файл), когда я добавляю свойствоGrid в свою форму, и я запустил его. Я не вижу его в форме. XAML код:wpf propertyGrid

<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; 
     } 

, пожалуйста, помогите мне, чтобы выяснить, почему это не видно

ответ

7

Это происходит из-за ошибки в коде WPFPropertyGrid.

Из его ThemeInfoAttribute видно, что автор этого кода предназначен для использования общей темы, но он ошибочно помещает свои ресурсы в файл «Темы/default.xaml» вместо «Темы/generic.xaml». Из-за этого ресурсы не были автоматически загружены. Он работал над ошибкой, загружая ресурсы вручную из своего App.xaml.

Когда вы ссылались на его .exe с вашего, его App.xaml не был загружен, поэтому его обходной способ не был активирован.

Лучшее решение - исправить имя файла в исходном коде на «Темы/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 в качестве словаря приложения или окна.

Отличный день!

-2

Вы читали документацию на страницу загрузки?

WPF Property Grid Download Page

Похоже, вы должны ссылаться на свойство, которое вы хотите редактировать, как это, например:

<wpg:PropertyGrid Width="550" Height="550" Instance="{Binding ElementName=button}" /> 
<Button x:Name="button" Content="Click" /> 
+1

да, мой друг, я прочитал его, но это не помогло.проблема в том, что когда я помещаю элемент управления в свою форму, кажется, что элемент управления не виден! спасибо – Asha

16

Я знаю, что это старый пост, но есть новый PropertyGrid на блоке, и он является наиболее функциональным и многофункциональным. О, и это БЕСПЛАТНО!

http://wpftoolkit.codeplex.com/

enter image description here

+0

своевременный выпуск. Спасибо Вам большое. –

1

Ибо кто заинтересован, я начал просто - но я надеюсь, что полезно - бесплатно и с открытым исходным кодом PropertyGrid проект WPF.

Источник доступен здесь: https://github.com/SoftFluent/SoftFluent.Windows и здесь также предлагается пакет nuget: https://www.nuget.org/packages/SoftFluent.Windows.

У него нет зависимостей, но требуется .NET 4, поскольку он использует .NET .NET 4 DataGrid class.

Смежные вопросы