Привет, ItemsControl в моей основной сетке и панелиТемма в качестве wrapPanel. В этой wrapPanel я помещаю MyCustomControl. Я хочу динамически устанавливать ширину MycustomControl. Также мне нужно использовать эту ширину в событии onLoaded MyCustomControl. Может ли кто-нибудь помочь? Как установить динамическую ширину элемента wrapPanels?
ответ
Я предполагаю, что вы хотите разместить свой собственный контроль (MyCustomControl) в визуальный контейнер (в данном случае WrapPanel).
Я обнаружил, что поиск свойств ActualWidth и ActualHeight в событии OnLoaded не работает, так как процесс компоновки в Silverlight еще не завершен.
Каждый визуальный контейнер реализует двухэтапный процесс, ответственный за определение размеров и организацию его дочерних элементов управления.
Чтобы привести пример, здесь представлен класс панели, реализующий только что описанный двухступенчатый процесс (MeasureOverride() и ArrangeOverride()).
public class RowPanel : Panel
{
private const double _groupSpace = 80;
public Point Location;
public RowPanel()
: base()
{
Location = new Point();
}
protected override Size MeasureOverride (Size availableSize)
{
Size size = new Size(double.PositiveInfinity, double.PositiveInfinity);
foreach (UIElement child in Children)
child.Measure(size);
return this.ArrangeNodes(false);
}
protected override Size ArrangeOverride (Size finalSize)
{
return this.ArrangeNodes(true);
}
private Size ArrangeNodes (bool arrange)
{
double pos = 0d;
Rect bounds = new Rect();
Size totalSize = new Size(0, 0);
foreach (UIElement child in Children)
{
GroupPanel group = child as GroupPanel;
bounds.X = pos;
bounds.Y = 0;
bounds.Width = group.DesiredSize.Width;
bounds.Height = group.DesiredSize.Height;
if (arrange)
{
group.Arrange(bounds);
Point b = new Point(bounds.X, bounds.Y);
group.SetValue(GroupPanel.LocationProperty, b);
}
totalSize.Width = pos + group.DesiredSize.Width;
totalSize.Height = Math.Max(totalSize.Height, group.DesiredSize.Height);
pos += (bounds.Width + RowPanel._groupSpace);
}
return totalSize;
}
}
То, что я хотел бы предложить, что вы смотрите, чтобы реализовать MeasureOverride и ArrangeOverride для вас визуальный контейнер, и вы таможенного контроля.
На самом деле я хочу установить желаемую ширину myCustomControl. Я пробовал метод measureOverride и ArrangeOverride, но все еще не работал. Элемент управления MyCustom содержит ContentControl, к которому я применяю разные стили в загруженном событии. Ниже приведена xaml для My customControl
- 1. Как установить динамическую ширину элемента блока?
- 2. Как установить динамическую ширину тела
- 3. Как установить динамическую ширину динамически
- 4. Как установить динамическую ширину div?
- 5. Как установить динамическую высоту элемента?
- 6. Как установить динамическую ширину <p:carousel>?
- 7. XSL-FO: Как установить динамическую ширину таблицы?
- 8. Как установить ширину элемента в%
- 9. CSS Установить ширину элемента
- 10. Как сделать динамическую ширину UICollectionViewCell
- 11. установить динамическую ширину только с CSS?
- 12. JQuery оживляет динамическую ширину?
- 13. Как установить фиксированную ширину, но динамическую высоту на JTextPane?
- 14. Как установить динамическую ширину и высоту для надутого зрения (кнопка)
- 15. Как установить динамическую ширину основного отчета при использовании кросс-таблицы?
- 16. Как установить динамическую высоту/ширину внешнего изображения в отчете rdlc?
- 17. Как установить ширину элемента, равную ширине окна?
- 18. Как установить ширину элемента, равную ширине устройства?
- 19. Как установить ширину элемента страницы в jQuery
- 20. Связывание списка с потоком WrapPanels
- 21. Опции выбора Выберите динамическую ширину
- 22. Установить ширину элемента изображения внутри него
- 23. Как горизонтально позиционировать мою динамическую ширину image
- 24. Установить ширину дочернего элемента на родительский div
- 25. Установить ширину и высоту скрытого элемента
- 26. Установить родительскую ширину в ширину дочернего элемента, выровненного снизу
- 27. Могу ли я установить ширину элемента viewpager?
- 28. Как переопределить ширину элемента BoundField?
- 29. Bootstrap DateTimePicker - как установить ширину
- 30. Как измерить ширину элемента HTML?
Возможно, было бы яснее, если бы вывела достаточно короткий пример Xaml, а не пыталась объяснить это в предложении. – AnthonyWJones