Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
8 / 16 / 2
Регистрация: 15.06.2015
Сообщений: 241
1

Как сделать форму Image по форме картинки загруженной в него?

09.04.2016, 19:59. Просмотров 971. Ответов 1
Метки нет (Все метки)

Скорее всего не получу ответа, но все же спрошу.
Есть Image. в него загружается Png изображение с прозрачным фоном. Дело в том, что на этом Image прописан код на возможность перемещения его по форме. И очень глупо получается, когда пользователь нажимает на прозрачную часть этого Image, а программа расценивает это как нажатие на картинку. Можно ли как-нибудь сделать так, чтобы Image как бы обтекал по форме изображения и не брал в расчет прозрачные части?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2016, 19:59
Ответы с готовыми решениями:

Как сделать прозрачным фон картинки, загруженной в форму через pictureBox?
Как сделать прозрачным фон картинки, загруженной в форму через pictureBox? Дабы не было подобной...

Как сделать Zoom картинки в Image ???
Помогите, пожалуйста. Как сделать zoom in ImageBox?

Как уменьшить цветность загруженной картинки
Например я подгружаю картинку на которой возможно 64 тыс цветов, как можно програмно преобразовать...

Как воспроизвести видео на форме и сделать с него скриншот
Конкретно сейчас меня интересует только лишь возможность проигрывания видео прямо внутри формы (то...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
1
8146 / 4411 / 1729
Регистрация: 11.02.2013
Сообщений: 9,390
10.04.2016, 00:08 2
Лучший ответ Сообщение было отмечено Phobos92 как решение

Решение

Пишут, что нужно делать свой класс-наследник от Image:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class OpaqueClickableImage:Image
{
 
 
    public int Threshold
    {
        get { return (int)GetValue(ThresholdProperty); }
        set { SetValue(ThresholdProperty, value); }
    }
 
    // Using a DependencyProperty as the backing store for Threshold.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty ThresholdProperty =
        DependencyProperty.Register("Threshold", typeof(int), typeof(OpaqueClickableImage), new PropertyMetadata(10));
 
 
    protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters)
    {
        var source = (BitmapSource)Source;
 
        // координаты "кликнутого" пикселя
        var x = (int)(hitTestParameters.HitPoint.X / ActualWidth * source.PixelWidth);
        var y = (int)(hitTestParameters.HitPoint.Y / ActualHeight * source.PixelHeight);
 
        // Перенос пикселя в байтовый массив
        var pixel = new byte[4];
        source.CopyPixels(new Int32Rect(x, y, 1, 1), pixel, 4, 0);
 
        // Проверка значения прозрачности
        return pixel[3] < Threshold ? null : new PointHitTestResult(this, hitTestParameters.HitPoint);
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2016, 00:08

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как сделать переключатель картинки на форме?
Всем привет! Хочу на форме реализовать следующую задумку. В Заголовок формы хочу поместить...

Сделать форму календаря (типа в Outlook), чтобы вставлять в форму данные из него
Уважаемые! Нужна помощь - сделать форму календаря (типа в Outlook), чтобы вставлять в форму...

Как программно узнать путь фотографии, загруженной в форму
Дело в следующем: я должен загрузить фотографию на форму, а программа записать его путь в TextBox....

как сделать форму в форме под веб?
Привет! Подскажите пожалуйста как сделать форму в форме под веб. Поясню что это значит. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.