Я пытаюсь растянуть содержимое, которое находится в панели обложки, не теряя возможности многострочного перевода. Мое намерение состоит в том, что если контент меньше ширины экрана, он растягивает любой неопределенный контент для заполнения. Это возможно? Это было сделано в другом месте?Пользовательские обертки для растягивания контента
Код я написал до сих пор:
protected override System.Windows.Size ArrangeOverride(System.Windows.Size finalSize)
{
if (this.Children.Count == 0)
return base.ArrangeOverride(finalSize);
if (FlexibleColumn == null)
return base.ArrangeOverride(finalSize);
double totalWidth = 0;
for (int i = 0; i > Children.Count; i++)
{
if (i == FlexibleColumn)
continue;
totalWidth = totalWidth + Children[i].DesiredSize.Width;
}
if (totalWidth < finalSize.Width)
{
Children[FlexibleColumn].DesiredSize.Width = finalSize.Width - totalWidth;
}
return base.ArrangeOverride(finalSize);
}
Однако дети только для получения, не устанавливая. Любые другие могут манипулировать им как этот пункт?
Благодаря
Попробуйте настроить DesiredSize на новый объект размера? – Belmiris
@Belmiris свойство * DesiredSize * имеет значение get-only. – McGarnagle
Попробуйте использовать [UniformGrid] (http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.uniformgrid.aspx). Если вы не рассматриваете overloaing [MeasureOverride] (http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.measureoverride.aspx) – dvvrd