2013-06-25 33 views
6

Tôi cần thêm hình chữ nhật vào hàng thứ hai của lưới. Tôi cần hình chữ nhật có chiều rộng giống với chiều rộng của lưới.Làm thế nào để kéo hình chữ nhật trên ô lưới trong XAML

Nhưng vấn đề là, chiều rộng của lưới được quyết định khi chạy. Nếu tôi cố gắng truy cập Width hoặc ActualWidth ở mã sau, tôi nhận được NaN hoặc 0.0 tương ứng.

ColumnSpanStretch cũng không hoạt động. Đây là mã:

<Grid x:Name="downloadPdfGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="20"/> 
     <RowDefinition Height ="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Button x:Name="btn" Content="{Binding Button}" Visibility="Collapsed" Click="OnButtonClick" Grid.Row="0"/> 
    <Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1"/> 
</Grid> 

Trả lời

11

Các bạn đã thử:

<Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" 
      Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" 
      Width="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}"/> 

Hoặc nếu bạn có tên của Grid:

<Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" 
      Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" 
      Width="{Binding ActualWidth, ElementName=downloadPdfGrid}"/> 

Edit: Tôi quên. Tôi đã không làm việc nhiều với hình chữ nhật cho mỗi, nhưng điều này có thể làm việc quá:

<Rectangle x:Name="underlineRect" Stretch="UniformToFill" Height="2" Fill="White" 
      Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" 
      HorizontalAlignment="Stretch"/> 
+0

Cảm ơn Simon. nhưng nó không hoạt động. –

+0

Sau đó, có cái gì khác ngoài lưới mà bạn không hiển thị. Tôi vừa mới khởi động một ứng dụng WPF trống chỉ với lưới của bạn bên trong cửa sổ và kiểm tra mã ban đầu của bạn và cả ba thay đổi được đề xuất và tất cả chúng đều hoạt động (kể cả của riêng bạn). –

+0

Bạn nói đúng. Vấn đề là do yếu tố gốc. Cảm ơn Simon. Nó hoạt động hoàn toàn tốt đẹp bây giờ. –

Các vấn đề liên quan