0
我有一個用戶控件,裏面包含一個圖像,一個文本框和一個按鈕。 它實現了MeasureOverride()
和ArrangeOverride()
,它基本上考慮了文本框的Text屬性來調整自己的大小。在Windows Store應用程序中是否有與AffectsRender類似的東西?
但是...... ArrangeOverride()
和MeasureOverride()
只被調用一次,在之前設置了文本。在通過數據綁定更改/更新文本後,它們不會再次被調用來重新計算。
我知道在WPF中有一個AffectsRender
元數據標誌,也是InvalidateVisual
,但我在Windows 8 Runtime land中。我如何在這裏做到這一點?
protected override Size MeasureOverride(Size availableSize)
{
Size panelDesiredSize = new Size();
m_textbox.Measure(availableSize);
if (m_textbox.DesiredSize.Height < m_textbox.MinHeight)
{
panelDesiredSize = new Size(
m_textbox.DesiredSize.Width, m_textbox.MinHeight);
}
else
{
panelDesiredSize = m_textbox.DesiredSize;
}
return panelDesiredSize;
}
protected override Size ArrangeOverride(Size finalSize)
{
double x = 0;
double y = 0;
m_textbox.Arrange(new Rect(new Point(x, y), finalSize));
m_button.Arrange(new Rect(new Point(x, y), finalSize));
m_image.Arrange(new Rect(new Point(x, y), finalSize));
m_button.Width = finalSize.Width;
m_button.Height = finalSize.Height;
m_image.Width = finalSize.Width;
m_image.Height = finalSize.Height;
return finalSize; // Returns the final Arranged size
}
正是我在找的,謝謝! – swinefeaster