Я пытаюсь программно позиционировать определенные элементы управления в форме, основываясь на различии минимального размера форм и его размера клиента - это, к сожалению, приводит к различным результатам в зависимости от темы, которую пользователь загрузил (в основном проблема связана с тот факт, что строка заголовка и граница формы имеют разную высоту/ширину в разных темах). Я попытался использовать высоту всего окна (включая строку заголовка и т. Д.), Но это, похоже, не работает должным образом :(Как вычислить минимальный размер _client_ формы .net windows?
это, к сожалению, приводит к тому, что элементы управления содержат несоответствие. В этом конкретном сценарии использования использование автоматического Расположение органов управления (например, панели макета потока) не является жизнеспособным решением
Я должен что-то действительно очевидное отсутствие -.? есть ли лучший способ сделать это
извинения, если этот вопрос звучит немой
Many Thanks Dave
Большое спасибо за ваш ответ - я дал этот снимок, и он почти работает :), однако он, кажется, игнорирует высоту верхней и нижней границ (то есть около 4 пикселей) - я иду попробуйте использовать GetSystemMetrics (SM_CYBORDER), чтобы узнать, работает ли это. – fusi
, возможно, вы можете найти 'SystemInformation.Border3DSize' в сочетании с' delta'. – Pondidum
в конечном итоге происходит с этим: Dim clientRectDelta As Integer = Me.Height - Me.ClientRectangle.Height - (SystemInformation.Border3DSize.Height * 2) и просто дать немного больше пространства вокруг вещей, так что разница в несколько пикселей is not that заметно - действительно разочарован, что что-то, что должно быть простым, - это ничего :(( Большое спасибо за вашу помощь по этому вопросу, вы все очень помогли мне в этом - окончательный ответ, похоже, не существует, как кажется я хочу, чтобы я понял, что я был близок к тому, что я собираюсь. Спасибо за ваш ответ. – fusi