Есть ли способ в Silverlight 4, чтобы диктовать, что все элементы в пределах StackPanel
должны иметь запас, вместо указания margin="10,0"
на каждом из них?Silverlight: У всех потомков элемента есть запас?
ответ
Поместите свой StackPanel внутри элемента Border и установите Border Padding на «10 0»
Я боюсь, что это не возможно, декларативно в XAML с StackPanel
непосредственно. Концептуальная философия в Silverlight/WPF заключается в том, что группа не должна изменять свойства своих детей. Таким образом, вы могли бы реализовать свою собственную панель, которая делает это в любом случае, или вы могли бы использовать ItemsControl
вроде:
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentPresenter Margin="10,0" Content="{Binding Content}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
[...]
</ItemsControl>
ItemsControl
использует StackPanel
по умолчанию, вы можете использовать его свойство ItemsPanel
определить другую панель как ItemsPanelTemplate
если вы так хотите.
Вы также можете обеспечить, чтобы ItemControl вел себя как StackPanel, указав его «ItemsPanel» как StackPanel. Хотя это, скорее всего, значение по умолчанию. По крайней мере, таким образом вы можете контролировать ориентацию. – 2010-12-01 20:46:17
Вы также можете сделать это программно; ваш StackPanel имеет коллекцию Children. Вы можете использовать это, чтобы перебирать их и устанавливать маржу.
Как я могу это сделать, это определить неявные стили в ресурсах StackPanel для каждого типа управления, который будет использоваться в StackPanel. Чтобы сохранить определение значения несколько раз для каждого типа управления, вы можете создать именованный базовый стиль, который нацелен на FrameworkElement и определяет стиль (ы), из которого может наследоваться стиль для каждого типа элемента управления. Пример приведен ниже:
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style x:Key="CommonStyle" TargetType="FrameworkElement">
<Setter Property="Margin" Value="10,0" />
</Style>
<Style TargetType="Button" BasedOn="{StaticResource CommonStyle}" />
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonStyle}" />
<Style TargetType="CheckBox" BasedOn="{StaticResource CommonStyle}" />
</StackPanel.Resources>
<Button>Button</Button>
<TextBlock Text="Text" />
<CheckBox>Check Box</CheckBox>
</StackPanel>
Обратите внимание, как каждый элемент управления в StackPanel будет иметь запас применяется, без необходимости определить его на каждый элементе управления.
Надеется, что это помогает ...
Крису Андерсон
PS. Блатантное самоопределение - это основано на трюке наследования в моей книге Pro Business Applications with Silverlight 4 :).
- 1. Получение списка всех потомков элемента в mootools
- 2. Убив всех потомков процесса
- 3. Цикл через всех потомков элемента, получить их атрибуты
- 4. Получение всех потомков для данного элемента в MySQL
- 5. CSS запас корневого элемента
- 6. У всех, что у Laravel есть route.php?
- 7. У всех столов есть таблицы?
- 8. Получение всех потомков запроса json
- 9. Выбор всех потомков узла дерева
- 10. Почему у меня есть нежелательный запас поверх моей страницы html?
- 11. Как получить всех потомков элементов?
- 12. Как получить всех потомков узла
- 13. У какой DLL есть «BusyIndicator» для silverlight?
- 14. CSS выбрать несколько потомков другого элемента
- 15. Получение списка XML-элемента из потомков
- 16. Найти всех прямых потомков данной фиксации
- 17. Laravel рекурсивно получить всех потомков таксономии
- 18. XSLT: Добавить атрибут для всех потомков RootNode
- 19. Выполнение-Отложенный запрос для идентификации всех потомков?
- 20. Подсчитайте всех потомков строки по нескольким таблицам
- 21. Найти всех потомков старейшего предка в SQL
- 22. Извлечение всех потомков Id в SQL Server
- 23. У всех объектов есть значение по умолчанию?
- 24. У всех SMSC есть IP и порт?
- 25. У всех контейнеров есть функция .size()?
- 26. У всех браузеров есть локальное хранилище?
- 27. У всех устройств Android есть папка «sdcard»?
- 28. У всех серверов есть операционные системы?
- 29. Почему у всех моделей Haskell есть законы?
- 30. Bootstrap selectpicker - У всех вариантов есть галочка
Зачем нужна граница, если у StackPanel есть свойство Margin? Это также не учитывает разницу между каждым ребенком, которую, вероятно, хочет сделать ОП. – 2010-12-01 20:47:33