2009-07-11 26 views

Trả lời

25

Chế độ xem khá hữu ích nếu bạn cần nội dung của cửa sổ để tỷ lệ tương ứng khi bạn đổi kích thước cửa sổ (ví dụ: tối đa hóa cửa sổ). Trong trang tối giản này

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Viewbox> 
     <StackPanel> 
      <TextBlock FontSize="14">Example</TextBlock> 
      <Border Background="Aqua" Width="100" Height="100"></Border>      
     </StackPanel> 
    </Viewbox> 
</Window> 

bạn có một TextBlock và viền màu được xếp chồng lên nhau theo chiều dọc; nếu bạn khởi động xaml này, cửa sổ sẽ có kích thước 300x300, phông chữ của TextBlock sẽ có kích thước 14 và đường viền màu sẽ là 100x100. Nếu bạn rescale cửa sổ, bạn sẽ thấy cả TextBlock và Border quy mô cho phù hợp (vì vậy họ sẽ không có nhiều kích thước bạn đã chỉ định trong xaml), giữ tỷ lệ tương đối. Viewbox thực sự hữu ích, về khía cạnh này, nếu bạn cần một cửa sổ có bố trí các thành phần bên trong trông luôn giống nhau một cách độc lập với độ phân giải cuối cùng, nó sẽ được hiển thị (vấn đề là khía cạnh tỉ lệ, suy nghĩ). Điều này rõ ràng là làm việc với bất kỳ nội dung bạn sẽ đặt bên trong Viewbox (chúng tôi đã có một ứng dụng với video và xem 3D ví dụ). Lưu ý rằng trong Visual Studio 2008, bạn sẽ không thể xem nội dung của Hộp nhìn trong Trình thiết kế.

Hy vọng trợ giúp này.

+0

Tôi đã cọ rửa internet cho cõi đời đời tìm kiếm điều này <. < –

0

Đỗ bạn có nghĩa là bạn muốn cửa sổ lấp đầy toàn bộ màn hình? Cách đơn giản nhất để thực hiện điều đó (không gây thêm đau đầu) là tối đa hóa cửa sổ.

w.WindowState = WindowState.Maximized; 

EDIT:

Một bố trí cửa sổ mở rộng đòi hỏi bạn phải tránh sử dụng trình biên tập XAML trong Visual Studio! Trên thực tế bạn có thể làm điều đó trong trình soạn thảo, nhưng nó rất khó.

Dễ dàng hơn để viết XAML bằng tay:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 

    <Label Grid.Column="0" Grid.Row="0">First Name</Label> 
    <TextBox Grid.Column="1" Grid.Row="0" Name="firstName">Fred</TextBox> 
    <Label Grid.Column="0" Grid.Row="1">First Name</Label> 
    <TextBox Grid.Column="1" Grid.Row="1" Name="lastName">Smith</TextBox> 
</Grid> 

chí Kích thước này để phù hợp với cửa sổ, mặc dù có thể trông lạ, như các hàng và cột sẽ theo mặc định nhận được một nửa không gian mỗi. Bạn có thể ghi đè này để họ có một chiều cao xác định bởi nội dung của họ thay vì:

<RowDefinition Height="Auto"/> 

Nó cũng có thể giúp đỡ để đưa lợi nhuận trên một số điều khiển, không gian chúng ra:

<TextBox Grid.Column="1" Grid.Row="1" Margin="6" Name="lastName">Smith</TextBox> 
+0

oh không, tôi muốn đây là vấn đề của tôi ... tôi muốn nội dung tự điều chỉnh kích thước cửa sổ. –

+0

Tôi không làm việc với biên tập viên ... u không hiểu tôi, tôi muốn nội dung phát triển ... không được truyền bá .. –

+0

Bạn sẽ phải chỉnh sửa câu hỏi của mình, tôi nghĩ vậy. Bạn có nghĩa là bạn thực sự muốn mọi chi tiết để phóng to, kích thước phông chữ là tốt? –

2

Nếu bạn muốn mở rộng quy mô thực sự tất cả mọi thứ bao gồm kích thước phông chữ, bạn có thể áp dụng một quy mô biến đổi nội dung của bạn, và ràng buộc nó X và Y giá trị chiều rộng và chiều cao của cửa sổ. Sau đó, bạn cũng sẽ cần một công cụ chuyển đổi giá trị để chuyển đổi chúng sang quy mô thích hợp.

+0

làm thế nào để tôi làm điều này trong mvvm? tôi có một phong cách cho tất cả các vms của tôi .. tôi muốn làm cho quy mô .. –

1

Nếu bạn muốn chia tỷ lệ mọi thứ thành kích thước của cửa sổ, hãy đặt mọi thứ vào trong hộp kiểm Viewbox.

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