powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / [WPF] Растровые значки
3 сообщений из 3, страница 1 из 1
[WPF] Растровые значки
    #36270396
Antoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только начал осваивать WPF. Возникла первая проблема: компонент Image растягивает растровый рисунок. Как этого избежать? Свойство Stretch = None. Значок (PNG) упорно вместо положенных 16x16 растягивается до 23x23 пикселей. Системное DPI = 96, системный шрифт стандартный
...
Рейтинг: 0 / 0
[WPF] Растровые значки
    #36270791
Antoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался сам. Проблема была в PNG-файле, точнее в его метаданных. Кто-то значение DPI в 72, а WPF честно пыталась ресамплить изображение для DPI = 96.

Решение проблемы: удалил из файла все метаданные с помощью PNGGauntlet и всё заработало как надо.
...
Рейтинг: 0 / 0
[WPF] Растровые значки
    #36271341
Antoshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжаем разговор... Сегодня столкнулся с такой проблемой. При создании шаблона ошибки для TextBox не могу правильно составить привязку для извлечения текста ошибки. Суть в том, что хочется сделать составной ToolTip, но привязка, показываемая во всех примерах не срабатывает.
Вот код разметки, с которым тултип всегда пуст:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<Validation.ErrorTemplate>
  <ControlTemplate>
    <StackPanel Orientation="Horizontal">
      <Border BorderBrush="Red" BorderThickness="2" CornerRadius="2,2,2,2">
        <AdornedElementPlaceholder x:Name="adorner"></AdornedElementPlaceholder>
      </Border>
      <Image Source="/WpfApplication4;component/error.png" HorizontalAlignment="Right" 
        VerticalAlignment="Center" Stretch="None" Margin="2">
        <Image.ToolTip>
          <ToolTip>
            <StackPanel Orientation="Horizontal">
              <Image Source="/WpfApplication4;component/error.png" 
                HorizontalAlignment="Right" VerticalAlignment="Center" Stretch="None" Margin="2" />
              <TextBlock Text="{Binding ElementName=adorner, 
                Path = AdornedElement.(Validation.Errors)[0].ErrorContent}" />
            </StackPanel>
          </ToolTip>
        </Image.ToolTip>
      </Image>
    </StackPanel>
  </ControlTemplate>
</Validation.ErrorTemplate>

В Output видно следующие исключение:
Код: plaintext
1.
2.
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=adorner'. 
BindingExpression:Path=AdornedElement.(0).[0].ErrorContent; DataItem=null; 
target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

Причём вариант, когда ToolTip стандартный, все работает как надо:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<Validation.ErrorTemplate>
  <ControlTemplate>
    <StackPanel Orientation="Horizontal">
      <Border BorderBrush="Red" BorderThickness="2" CornerRadius="2,2,2,2">
        <AdornedElementPlaceholder x:Name="adorner"></AdornedElementPlaceholder>
      </Border>
      <Image Source="/WpfApplication4;component/error.png" HorizontalAlignment="Right" 
        VerticalAlignment="Center" Stretch="None" Margin="2"
        ToolTip="{Binding ElementName=adorner, Path = AdornedElement.(Validation.Errors)[0].ErrorContent}">
      </Image>
    </StackPanel>
  </ControlTemplate>
</Validation.ErrorTemplate>

У кого какие есть идеи?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / [WPF] Растровые значки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]