|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
Добрый день уважаемое сообщество Вот столкнулся с проблемой. В приложении WinForms мне необходимо использовать объект типа GlyphTypeface из пространства имен System.Windows.Media Как только я инициализирую объект данного типа или объект в котором данный тип является generic параметром (Array, List etc..) Разрешение объекта Graphics, рисующего форму изменяется с 96DPI на 120DPI. И форма визуально изменяется в размере. В приложениях WPF такого не присходит. Может быть кто нибудь из Вас сталкивался с этой проблемой и знает как ее решить. Буду очень рад любому совету и подсказке. С уважением ко всем участникам форума ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 12:03 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
YK13, подробнее опишите, на чем рисуете полученное изображение, через что вы Geometry перегоняете в Bitmap? через DrawImage? или через ContentHost? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 13:09 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
авторподробнее опишите, на чем рисуете полученное изображение, через что вы Geometry перегоняете в Bitmap? через DrawImage? или через ContentHost? Я ничего не рисую. У меня есть класс, который наследует System.Windows.Forms.Form Просто при переопределении метода OnPaint в этом класс или в обработчике события Paint вы можете увидеть значение DPI у объекта Graphichs Привожу код, если я не очень доступно объяснил Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 14:47 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
YK13, Namespace: System.Windows.Media Assembly: PresentationCore.dll Я предполжу что этим инициализируется WPF из WinForm ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 17:08 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
авторЯ предполжу что этим инициализируется WPF из WinForm То есть, Вы имеете ввиду, что инициализация WPF изменяет разрешение. В соответствии с Вашим предположением, попробовал инициализировать в обработчике кнопки объект какого либо другого типа из пространства имен System.Windows.Media. В частности System.Windows.Media.CharacterMetrics - такой же эффект. Вопрос в другом как с этим жить? Можно ли как то использовать WPF объекты в WinForm без вышеописанного эффекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 20:33 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
YK13, ну идея юзать WPF в WF всегда была не очень. это только верхушка айсберга проблем, но довольно серьезная из всех тех проблем, что приходилось решать при интеграции WPF в WF. проще создать окно WPF и засунуть туда WF... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2021, 20:36 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
YK13 Привожу код, если я не очень доступно объяснил Воспроизвел это у себя именно в приведённом варианте - DPI не поменялся (.Net 4.8, AnyCPU, Win10 Pro x64 1909): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
и есть подозрение, что причиной вышеописанного поведения является та самая Код: c# 1.
Roman Mejtes роще создать окно WPF и засунуть туда WF Тоже не очень. Мне доводилось как-то хостить винформсовский ReportViewer в WPF-ном окне (т.к. для WPF аналог отсутствует в принципе) - начинаются всякие мелькания и артефакты отрисовки при ресайзе/перемещении окна, чего-то начинает на ровном месте просвечивать сквозь него, хотя окно непрозрачное, итд итп. Что винформс в WPF, что наоборот - оно как вставная челюсть, как-то работает, но родное решение лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 06:54 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
YK13, сколько мониторов, какое разрешение, какое скалирование? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 07:47 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
Сон Веры Павловныи есть подозрение, что причиной вышеописанного поведения является та самая YK13//Какая то бизнес логика Увы, нет. Эффект происходит даже если далее нет никакой бизнес логики Пробовал, на разных машинах. И WinPro и WinHome с разным количеством мониторов - эффект присутствовал. Говорю "присутствовал" потому что сейчас пробую на машине WinPro, на которой еще вчера тестировал это, когда писал этот пост. Вчера всё было, причем проблема обнаружилась уже давно (с самого начала использования класса GlyphTypeface - еще несколько месяцев назад) Но сейчас никакого эффекта. Попробую вечером на другой машине Странно. Вроде бы нигде не было каких либо апдейтов за последние сутки. Вообще не нахожу этому какого либо объяснения ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 13:25 |
|
Использование класса GlyphTypeface в проекте WinForms приводит к изменению разрешения форм
|
|||
---|---|---|---|
#18+
Нашел в чем проблема. Как оказалось все зависит от настроек дисплея в Windows. Параметры>Система>Дисплей Если значение настройки "Изменение размероа текста приложений и других элементов" больше 100% тогда появляется описываемый в этом посте эффект. Но как это побороть не знаю. Пробовал поиграть со значением AutoScaleMode (по умолчанию стоит System.Windows.Forms.AutoScaleMode.Font) Не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 20:02 |
|
|
Start [/forum/topic.php?fid=20&fpage=2&tid=1398216]: |
0ms |
get settings: |
24ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
240ms |
get tp. blocked users: |
2ms |
others: | 308ms |
total: | 682ms |
0 / 0 |