Изменение размера дочернего окна на лету в Silverlight вызывает странное поведение

У меня странная проблема при изменении размера родительского элемента холста, которая случается с быть ChildWindow.

С высокого уровня это то, что я ' m пытается сделать, когда пользователь нажимает кнопку:

  1. Показать строку, установив высоту RowDefinition от 0 до чего-то большего.
  2. Изменить размер холста, так как все внутри выше.
  3. Изменить размер холста ' parent (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"
    ()

В этом случае мой STANDARD_ROW_HEIGHT составляет всего 23 пикселя , и все же пустое пространство в 92 пикселя добавляется к ChildWindow под строкой заголовка после того, как пользователь нажимает кнопку. Более того, заключается в том, что, когда пользователь нажимает кнопку еще раз (для переключения видимости строки), строка исчезает, но остается дополнительное пространство в верхней части окна. Изначально этого пустого места нет. См. Это изображение:

alt text

Мы будем благодарны за любые мысли / помощь. Спасибо!

6
задан Mike Cialowicz 12 November 2010 в 21:25
поделиться