У меня только общий вопрос относительно проблемы, с которой я столкнулся с помощью масштабирования/позиционирования элементов в wpf. Beacuse Я новичок в wpf, я просто перетаскивал и масштабировал элементы в визуальном предпросмотре приложения. Конечно, это устанавливает маржу для каждого элемента, и теперь, когда я изменяю размер главного окна или запускаю приложение в полноэкранном режиме, все становится испорченным и перекрывается. Теперь я понимаю, что делает маржа и что она очень статична. Каков наилучший способ изменить это на некоторое динамическое позиционирование (строки/столбцы сетки). Я просто понятия не имею.Как избавиться от позиционирования маржи?
ответ
Чтобы разместить кнопку во второй строке и втором столбце в сетке, вы можете использовать следующий код XAML.
Стоит отметить, в этом примере является то, что *
-определением является по отношению к другим *
-sizes, поэтому 1*
половине размер 2*
и так далее.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="2*" /> <!-- Make this row double in height -->
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <!-- You don't need a number either -->
<ColumnDefinition Width="*" /> <!-- All columns are the same size -->
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="1" Grid.Column="1" Content="Hello" />
</Grid>
Просто добавьте еще несколько советов ... Вы можете определить столько строк и столбцов как вы хотите, и если вы не определяете их, то подразумевается, что существует хотя бы один столбец и/или строка «Высота» и «Ширина». Кроме того, если вы не укажете 'Grid.Row' или' Grid.Column' для некоторого элемента управления внутри Grid, тогда он помещается по умолчанию в первый ряд строк и первый столбец. – almulo
Спасибо. Еще один вопрос. Возможно ли, чтобы кнопка содержала более одной ячейки в сетке, например, 2.2, 2.3, 3.2 и 3.3? Или, другими словами, объединить четыре соседние ячейки в одну большую ячейку? – Ivan
Да, вы можете использовать свойства «Grid.RowSpan» и «Grid.ColumnSpan» для каждого элемента – Patrick
Вы должны использовать сетку
В сетке, вы можете определить высоту строки, в ширину столбца ... это выглядит так
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="5*" />
</Grid.RowDefinitions>
</Grid>
Вы должны взглянуть на this article
- 1. Как избавиться от определенной маржи в Twitter Bootstrap 3?
- 2. Коллапс маржи после относительного позиционирования div
- 3. Маржи от края
- 4. Избавление от маржи TextView в
- 5. Как избавиться от goto's?
- 6. Как избавиться от ClassCastException?
- 7. Как избавиться от курсоров?
- 8. Как избавиться от System.Windows.Media.MediaPlayer
- 9. Как избавиться от «margin»
- 10. Как избавиться от подзапроса?
- 11. Как избавиться от TypeError
- 12. Как избавиться от разделителей?
- 13. Как избавиться от JPanel?
- 14. Как избавиться от @ {Alias =}?
- 15. Как избавиться от JFileChooser
- 16. Как избавиться от libthread_db
- 17. Как избавиться от PSObject
- 18. Как избавиться от точек!
- 19. Как избавиться от «MySQLSyntaxErrorException»
- 20. Как избавиться от SKTextures?
- 21. Как избавиться от StyleCop
- 22. Как избавиться от bitmapsource
- 23. Как избавиться от RDD?
- 24. Как избавиться от PlaceHistoryMapper
- 25. Как избавиться от наследства?
- 26. Как избавиться от пробелов?
- 27. Как избавиться от TLE?
- 28. Scrollview страница позиционирования от
- 29. Как избавиться от ошибки oracleCommand?
- 30. Как избавиться от похитителей темы?
Используйте контейнеры вместо таких, как Grid или StackPanel. Что вы пытаетесь достичь? На данный момент этот вопрос слишком широк. – Patrick
У меня есть приложение, работающее в определенном размере. Я хочу иметь его в полноэкранном режиме без какой-либо деформации элемента. Каждый элемент прямо сейчас выглядит следующим образом:
. Затем вы должны использовать сетку с * -высокой и шириной и использовать HorizontalAlignment = "Stretch" на вашем компоненты – Patrick