2015-09-27 49 views
0

我正在使用wpf創建桌面應用程序。我有網格在哪一行分爲三列。當屏幕尺寸較大時,一切正常。但是當我減少屏幕尺寸。標籤被裁剪。我重視這兩個場景如何在wpf中屏幕尺寸減小時將標籤設置爲多行

更大的屏幕:http://prntscr.com/8kxuas 小屏幕:http://prntscr.com/8kxufe

這裏是電網代碼:

<Window x:Class="CharunOptics.Search" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Charun Optics" Height="800px" Width="1600px" WindowStartupLocation="CenterScreen" WindowState="Maximized" Loaded="Window_Loaded"> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="1*"/> 
     <RowDefinition Height="7*"/> 
    </Grid.RowDefinitions> 

    <Grid Grid.Row="0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="1*"></ColumnDefinition> 
      <ColumnDefinition Width="3*"></ColumnDefinition> 
      <ColumnDefinition Width="1*"></ColumnDefinition> 
     </Grid.ColumnDefinitions> 
     <Grid Grid.Row="0" Grid.Column="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="1*"></ColumnDefinition> 
       <ColumnDefinition Width="1*"></ColumnDefinition> 
       <ColumnDefinition Width="1*"></ColumnDefinition> 
      </Grid.ColumnDefinitions> 

      <Label Content="Search: (Name or Contact)" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Right" Margin="0,0,25,0" VerticalAlignment="Center" FontSize="20"/> 
      <TextBox Grid.Column="1" HorizontalAlignment="Stretch" Height="auto" Margin="25,0,25,0" TextWrapping="Wrap" Text="" VerticalAlignment="Center" FontSize="20" Grid.Row="0" Name="TxtName"/> 
      <Button x:Name="BtnSearch" Grid.Column="2" Grid.Row="0" Content="Search" FontSize="20" Click="BtnSearch_Click" Margin="32"/> 
     </Grid> 

    </Grid> 
    <DataGrid Grid.Row="1" Grid.Column="0" Name="DtGrid" ColumnWidth="*" CanUserAddRows="False"> 
     <DataGrid.ColumnHeaderStyle> 
      <Style TargetType="{x:Type DataGridColumnHeader}"> 
       <Setter Property="Background" Value="{StaticResource PrimaryBrush}"/> 
       <Setter Property="Foreground" Value="{StaticResource PrimaryFont}" /> 
       <Setter Property="HorizontalContentAlignment" Value="Center" /> 
      </Style> 
     </DataGrid.ColumnHeaderStyle> 
    </DataGrid> 

</Grid> 

是否可以設置標籤的多行當它像HTML一樣溢出時?

+0

TextWrapping = Wrap – Paparazzi

+0

TextWrapping = Wrap對Label不可用。我應該把它給列嗎? –

+0

然後使用TextBlock?如果你沒有空間,爲什麼像這樣擠在中間呢?如果您的空間不足,爲什麼放棄25的保證金? – Paparazzi

回答

-1

您只需將寬度/高度屬性設置爲Auto(這是默認值)。這將設置屏幕大小的標籤基礎的大小。

+1

抱歉沒有運氣。我認爲高度和寬度自動適用於HTML而不適用於WPF。 –

0

我找到了解決方案。我已經將標籤更改爲TextBlock,因爲標籤沒有textwrapping屬性。

感謝@Frisbee爲您的意見

<TextBlock Text="Search: (Name or Contact)" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Right" Margin="0,0,25,0" VerticalAlignment="Center" FontSize="20" TextWrapping="Wrap"/> 
0

第一:

WPF標籤劑量不支持文本換行。一個更好的主意是使用文本包裝

一個更好的主意是使用支持文本換行的TextBlock。

<TextBlock TextWrapping="Wrap">Your huge text here</TextBlock>