AutoScale Factor не обновляется должным образом, когда мы переключаем масштабирование
Проблема: край элемента управления обрезается при масштабировании.
ОС Windows:10
Я использую Usercontrol, который унаследован от Control в приложении DpiAware Enabled, мне нужно масштабировать элемент управления в соответствии с текущим масштабированием, когда
AutoScaleMode.Font
установите в Form.Currently в 100 масштабирования, если я перетаскиваю Usercontrol и запускаю приложение, элемент управления будет отображаться правильно с определенной шириной и высотой. Теперь изменив масштабирование со 100 на 200 и запустив то же самое приложение, которому требуется элемент управления AutoScaled в соответствии с 200 масштабирование, но здесь я сталкиваюсь с проблемой, высота и ширина элемента управления не обновляются должным образом [край элемента управления обрезается]. Эта проблема может возникать из-за того, что фактор AutoScale не обновляется должным образом, в настоящее время, если я открыл конструктор приложения
AutoScaleDimensions
Значение формы изменяется в соответствии с текущим масштабированием. Теперь я снова запускаю приложение, элемент управления будет отображаться правильно.
Значение AutoScaleFactor не обновляется должным образом в функции переопределения ниже
protected override Rectangle GetScaledBounds(Rectangle bounds, SizeF factor, BoundsSpecified specified)
{
return base.GetScaledBounds(bounds, factor, specified);
}
Значение формы AutoScaleDimensions
Это может быть связано с тем, что значение AutoScaleDimension формы не обновляется, когда мы переключаем масштабирование. (AutoScaleDimension (6F,13F) для 100 масштабирования) будет поддерживаться для всего масштабирования. Но мы открываем конструктор, прежде чем запускать приложение, значение AutoScaleDimension корректно обновляет свое значение в соответствии с соответствующим масштабированием, и сообщаемая проблема будет решена сейчас.
Перед открытием Дизайнер
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
После открытия дизайнера
this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
Пожалуйста, предложите мне, как исправить сообщенную проблему.