Смешивать не рендеринг изображений в пользовательском контроле - PullRequest
1 голос
/ 12 октября 2009

Я разрабатываю приложение WPF и создал пользовательский элемент управления под названием ViewIconUC. Этот элемент управления живет в сборке (MyControlAssemblyUI). Я могу создать экземпляр элемента управления на странице ZAML в этом элементе управления, и у меня нет ошибок (я даже прикрепил кинжал к Blend для проверки), и я вижу фон кнопки, который я установил в элементе управления, но файл значка, который я назначаю мой контроль не появляется. Я использую элемент управления в другой сборке (MyAssembly). Когда я загружаю проект этой сборки в Blend, получаю то же самое поведение. Тем не менее, когда я запускаю приложение, значок отображается так, как и предполагалось. Так что, похоже, проблема с Blend. Любые предложения о том, как получить что-то, чтобы показать в Blend?

XAML для элемента управления:

<UserControl
  x:Class="MyStuff.MyControlAssemblyUI.ViewIconUC"

  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

  x:Name="m_ViewIconUC"
  Height="36" Width="42"
>

  <UserControl.Resources>
    <Style TargetType="Button">
      <Setter Property="Background" Value="#40FFFFFF"/>
    </Style>
    <Style TargetType="Image">
       <Setter Property="Width" Value="32" />
       <Setter Property="Height" Value="32" />
    </Style>
  </UserControl.Resources>

  <Button x:Name="m_ViewIconUC_Button">
    <Image 
      x:Name="m_ViewIconUC_Image"
      Source="{Binding ElementName=m_ViewIconUC, Path=IconFile}"
    />
  </Button>

</UserControl>

Вот экземпляр на странице XAML в сборке MyControlAssemblyUI:

  <Grid>
      <MyControlAssemblyUI:ViewIconUC
         x:Name="m_TestToolBtn"
         IconFile="/Resources/Images/MyAppIcon32x32.png" />
  </Grid>

Мой экземпляр в реальном приложении (MyAssembly) выглядит так:

<MyControlAssemblyUI:ViewIconUC
  x:Name="m_SelectToolBtn"
  IconFile="/Resources/Images/SelectTool-32.png" />

Я не буду прикреплять код, если кто-то его не попросит.

1 Ответ

1 голос
/ 15 октября 2009

Проблема заключалась в том, что строка IconFile в клиенте имела косую черту. Я изменил это на следующее, и все работает.

<MyControlAssemblyUI:ViewIconUC
  x:Name="m_SelectToolBtn"
  IconFile="Resources/Images/SelectTool-32.png" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...