2017-11-27 17 views
0

初心者の質問があります。WPFの表示と表示設定の説明

解決策1920x1080用に設計されたWPFアプリケーションがあります。私はディスプレイの設定を変更しました(下の画像を参照)、アプリケーションはいくつかの要素と境界のあるコレクションを表示するために停止しました。私は混乱しています。スクリーンに少なくとも何かを示すのに十分なスペースがあるはずですから。他の要素はそこに残り、完全な内容を示していない。私は問題が何かを見つけることができず、バインディングをデバッグするのに多くの時間を費やしました。

display settings screenshot

経験豊富な開発者は、私にこれを説明してもらえてください。ここ

コードである:

ウィンドウはグリッドレイアウト

<Grid> 
    <Grid.Resources> 
     <convert:DebugDataBindingConverter x:Key="DebugBinding" /> 
    </Grid.Resources> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="47" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="66" /> 
    </Grid.RowDefinitions> 

を使用メイングリッド

<Grid Grid.Row="1"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="1*" /> 
      <ColumnDefinition Width="1*" /> 
      <ColumnDefinition Width="0.5*" /> 
      <ColumnDefinition Width="0.6*" /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="35" /> 
      <RowDefinition Height="120" /> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="480" /> 
     </Grid.RowDefinitions> 

別のグリッドが含まれており、このグリッドは、コードの別の部分が含まれます。

<Border 
      Name="brdDevelopper" 
      Grid.Row="2" 
      Grid.Column="3" 
      Style="{DynamicResource Simulation}" 
      Visibility="{Binding VisibilityToDevelopper}"> 
      <DockPanel> 
       <DockPanel.Resources> 
        <Style TargetType="{x:Type TextBlock}"> 
         <Setter Property="FontSize" Value="15" /> 
         <Setter Property="FontWeight" Value="Bold" /> 
         <Setter Property="DockPanel.Dock" Value="Top" /> 
         <Setter Property="Padding" Value="10,2" /> 
        </Style> 
       </DockPanel.Resources> 
       <TextBlock 
        Background="Black" 
        Foreground="White" 
        Text="Developper Controls" /> 
       <ItemsControl Name="enuDevelopper"> 
        <ItemsControl.ItemTemplate> 
         <DataTemplate> 
          <Button 
           Click="btnDevelopper_Click" 
           Content="{Binding}" 
           Style="{DynamicResource SimulationButton}" 
           Tag="{Binding}" /> 
         </DataTemplate> 
        </ItemsControl.ItemTemplate> 
        <ItemsControl.ItemsPanel> 
         <ItemsPanelTemplate> 
          <UniformGrid Margin="10,2" Columns="1" /> 
         </ItemsPanelTemplate> 
        </ItemsControl.ItemsPanel> 
       </ItemsControl> 
      </DockPanel> 
     </Border> 
<Style x:Key="Simulation" TargetType="Border"> 
    <Setter Property="CornerRadius" Value="2" /> 
    <Setter Property="Background" Value="#FF71B0B0" /> 
    <Setter Property="BorderBrush" Value="Silver" /> 
    <Setter Property="BorderThickness" Value="2" /> 
    <Setter Property="Margin" Value="20" /> 
    <Setter Property="Panel.ZIndex" Value="700" /> 
    <Setter Property="VerticalAlignment" Value="Top" /> 
</Style> 

私は(上の写真の上に)125%100%からウィンドウのテキストの設定を変更すると、私は境界線を見ることができますが、それにはボタン:ここは、境界線のスタイルではありません。そして私には同様の振る舞いを持つ他の要素があります。

ありがとうございました。 Tom

+2

あなたのレイアウトを見るのは難しいです。私のクリスタルボールでは、固定幅、高さ、余白を使用していると仮定しています。絶対配置しても、レイアウトを行うのに十分な動的コンテナではないかもしれません。私は間違っているかもしれません。 –

+0

コードを見る必要があります。私は誰かが表示要素の幅と高さの固定値を使用していたと推測しています。私はプロキシの背後にあるので、私は画像を見ることができません。 – XAMlMAX

+0

あなたは正しいです、使用される固定幅があります。ただし、クリップされたテキストで1つのボタンが表示され、2つ目のボタンがまったく表示されない場合は、どのように状況に合っていますか? – Tomas

答えて

0

グリッドを使用していますか?あなたのウィンドウはあなたの表示設定に従って表示されますが、あなたのウィンドウにもっと多くの要素がある場合は、コンテンツ全体にグリッドを使用してサイズを変更する必要があります。 link

<Window x:Class="WpfTutorialSamples.Panels.TabularGrid" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="TabularGrid" Height="300" Width="300"> 
    <Grid> 
       <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="2*" /> 
         <ColumnDefinition Width="1*" /> 
         <ColumnDefinition Width="1*" /> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
         <RowDefinition Height="2*" /> 
         <RowDefinition Height="1*" /> 
         <RowDefinition Height="1*" /> 
       </Grid.RowDefinitions> 
       <Button>Button 1</Button> 
       <Button Grid.Column="1">Button 2</Button> 
       <Button Grid.Column="2">Button 3</Button> 
       <Button Grid.Row="1">Button 4</Button> 
       <Button Grid.Column="1" Grid.Row="1">Button 5</Button> 
       <Button Grid.Column="2" Grid.Row="1">Button 6</Button> 
       <Button Grid.Row="2">Button 7</Button> 
       <Button Grid.Column="1" Grid.Row="2">Button 8</Button> 
       <Button Grid.Column="2" Grid.Row="2">Button 9</Button> 
     </Grid> 
</Window> 
関連する問題