Вопрос

Мне нужна PropertyGrid для моего приложения WPF.после долгих поисков я нашел это Я добавил сборку (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;
        }

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

Это было полезно?

Решение

Это связано с ошибкой в коде WPFPropertyGrid.

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

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

Лучшее решение - исправить имя файла в исходном коде на "Themes/generic.xaml".Если это невозможно, вторым лучшим решением является ручная загрузка ресурсов из вашего приложения.xaml:

  <Application.Resources>

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

  </Application.Resources>

Или, если вы предпочитаете, вы можете поместить это в тег в своем окне.

Обратите внимание, что приведенный выше XAML предполагает, что будут использоваться другие ресурсы, поэтому потребуется слияние.Если нет, вы можете пропустить шаги по созданию отдельного словаря и объединению и вместо этого просто установить словарь WPGDemo в качестве вашего приложения или оконного словаря.

Хорошего вам дня!

Другие советы

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

http://wpftoolkit.codeplex.com/

enter image description here

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

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

Он не имеет зависимостей, но требует .NET 4, поскольку использует .NET 4 от WPF Класс DataGrid.

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

Страница Загрузки Таблицы свойств WPF

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

<wpg:PropertyGrid Width="550" Height="550" Instance="{Binding ElementName=button}" />
<Button x:Name="button" Content="Click" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top