Tôi gặp sự cố lạ khi thay đổi kích thước bố cục của canvas, điều này xảy ra là ChildWindow.Thay đổi kích thước chiều cao ChildWindow khi đang di chuyển trong Silverlight gây ra hành vi lạ
Từ một mức độ cao, đây là những gì tôi đang cố gắng để làm gì khi người dùng nhấp vào một nút:
- Bỏ ẩn liên tiếp, bằng cách thiết lập chiều cao RowDefinition từ 0 đến một cái gì đó lớn hơn.
- Đổi kích thước canvas vì mọi thứ bên trong đều cao hơn.
- Thay đổi kích thước của bố cục canvas (ChildWindow), vì canvas cao hơn.
Bước 1 và 2 hoạt động tốt. Vấn đề là với bước 3: khi tôi bước qua mã F #/Silverlight, tất cả các kích thước dường như được đặt chính xác. Vấn đề là ChildWindow được hiển thị trên màn hình như là nhiều hơn cao hơn mức thực sự cần thiết.
Hãy xem một ví dụ dưới đây:
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"
()
Trong trường hợp này, STANDARD_ROW_HEIGHT của tôi là chỉ có 23 pixel, nhưng một không gian trống của 92 pixel đã được bổ sung vào ChildWindow bên dưới thanh tiêu đề sau người dùng nhấp vào nút. Hơn nữa, là khi người dùng nhấp vào nút một lần nữa (để chuyển đổi hiển thị hàng), hàng biến mất nhưng không gian thêm ở phía trên cùng của cửa sổ vẫn còn. Ban đầu, không gian trống này không có ở đó. Xem hình ảnh này:
Mọi suy nghĩ/trợ giúp sẽ được đánh giá cao. Cảm ơn!
Thật không may là RowDefinition không có IsVisible/tài sản Visible/Tầm nhìn. Ngoài ra, khi tôi ẩn tất cả các nội dung của Grid Row, nó không thay đổi kích thước xuống không có gì (hoặc ẩn chính nó). Theo như tôi có thể nói, không có thực tế "Row" đối tượng mà tôi có thể đặt các lĩnh vực hình thức của tôi vào ... Tôi phải gán Grid.Row của từng lĩnh vực cá nhân. Tôi nghĩ rằng tôi có thể phải làm lại tất cả mọi thứ và phân chia các lĩnh vực của tôi thành lưới phụ, được giấu kín. –