У меня странная проблема при изменении размера родителя холста, который, как оказалось, является ChildWindow.
На высоком уровне это то, что я пытаюсь сделать, когда пользователь нажимает накнопка:
- Раскройте строку, установив высоту RowDefinition от 0 до чего-то большего.
- Измените размер холста, так как все внутри выше.
- Измените размерродительский холст (ChildWindow), так как холст выше.
Шаги 1 и 2 работают нормально.Проблема с шагом 3: когда я перехожу через код F # / Silverlight, все размеры, кажется, установлены правильно.Проблема в том, что ChildWindow отображается на экране как * намного выше, чем на самом деле.
Посмотрите на приведенный ниже пример:
member this.btnWhatever_Click(sender : obj) (args : RoutedEventArgs) =
let parentWindow = this.Parent :?> ChildWindow // get the canvas' parent, and cast it to a ChildWindow
// if the RowDefinition height is set to our standard, the hide it by setting it to 0
if this.aRowDefinition.Height.Value.Equals STANDARD_ROW_HEIGHT then
this.aRowDefinition.Height <- new GridLength(0.)
this.Height <- this.Height - HEDGE_ROW_HEIGHT
parentWindow.Height <- parentWindow.Height - STANDARD_ROW_HEIGHT
this.btnCreateOrRemoveHedge.Content <- "On"
// otherwise, unhide the RowDefinition by setting it to the standard height
else
this.aRowDefinition.Height <- new GridLength(STANDARD_ROW_HEIGHT)
this.Height <- this.Height + STANDARD_ROW_HEIGHT
parentWindow.Height <- parentWindow.Height + STANDARD_ROW_HEIGHT
this.btnWhatever.Content <- "Off"
()
Inв этом случае мой STANDARD_ROW_HEIGHT составляет всего 23 пикселя, и все же пустое пространство в 92 пикселя добавляется в ChildWindow под строкой заголовка после того, как пользователь нажимает кнопку.Более того, когда пользователь снова нажимает кнопку (чтобы переключить видимость строки), строка исчезает, но остается дополнительное место в верхней части окна.Изначально этого пустого места не было.См. Это изображение:
![alt text](https://i.stack.imgur.com/oLWP2.jpg)
Любые мысли / помощь будет принята с благодарностью.Спасибо!