2016-06-17 2 views
-1

この時点で私はこのことについて正しいかどうかは実際にはわかりませんが、それに固執すれば私は必要な原則を学びます。私は手元の問題に固執する。ここでスタックパネルが自動ストレッチしていない

は、WPFの構文は次のとおりです。

<Window x:Class="OCLMEditor.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:OCLMEditor" 
     mc:Ignorable="d" 
     Title="Christian Life and Ministry Editor" Height="517.366" Width="729.7"> 
    <Grid Margin="0,0,0,3"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="auto"></ColumnDefinition> 
      <ColumnDefinition Width="50*"></ColumnDefinition> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="auto"></RowDefinition> 
      <RowDefinition></RowDefinition> 
     </Grid.RowDefinitions> 

     <StackPanel Grid.Row="0" Grid.ColumnSpan="2"> 
      <Menu x:Name="menuOCLM"> 
       <MenuItem Header="File"> 
        <MenuItem Header="Download Schedule Information"/> 
        <Separator/> 
        <MenuItem Header="Export Student Information"/> 
        <MenuItem Header="Import Student Information"/> 
        <Separator/> 
        <MenuItem Header="Page Setup"/> 
        <MenuItem Header="Print Preview"/> 
        <Separator/> 
        <MenuItem Header="Update Google Calendar"/> 
        <Separator/> 
        <MenuItem Header="Exit"/> 
       </MenuItem> 
       <MenuItem Header="Edit"/> 
       <MenuItem Header="View"/> 
       <MenuItem Header="Options"/> 
       <MenuItem Header="Help"/> 
      </Menu> 
     </StackPanel> 

     <DockPanel Grid.Row="1" Grid.Column="0" Background="Aqua"> 
      <StackPanel Orientation="Horizontal" Margin="3"> 
       <StackPanel Background="Yellow" HorizontalAlignment="Stretch"> 
        <Label>Week of Meeting:</Label> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="auto"/> 
         </Grid.ColumnDefinitions> 
         <ComboBox> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 1</Label> 
           </StackPanel> 
          </ComboBoxItem> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 2</Label> 
           </StackPanel> 
          </ComboBoxItem> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 3</Label> 
           </StackPanel> 
          </ComboBoxItem> 
         </ComboBox> 
         <Image Grid.Column="1" HorizontalAlignment="Right" Source="event_time.png" Margin="2"></Image> 
        </Grid> 
        <Label>Note:</Label> 
        <ComboBox IsEditable="True"> 
         <ComboBoxItem>Sample Text</ComboBoxItem> 
        </ComboBox> 
        <Label>Bible Reading for Week:</Label> 
        <TextBox>PSALMS 60-68</TextBox> 
        <Label>Opening Song:</Label> 
        <ComboBox> 
         <ComboBoxItem>Song 1</ComboBoxItem> 
         <ComboBoxItem>Song 2</ComboBoxItem> 
         <ComboBoxItem>Song 3</ComboBoxItem> 
        </ComboBox> 
       </StackPanel> 
       <StackPanel Orientation="Vertical" Margin="10,0,0,0" Background="Red"> 
        <Label>Chairman:</Label> 
        <ComboBox></ComboBox> 
        <Label>Auxiliary Counsellor 1:</Label> 
        <ComboBox></ComboBox> 
        <Label>Auxiliary Counsellor 2:</Label> 
        <ComboBox></ComboBox> 
        <Label>Prayer:</Label> 
        <ComboBox></ComboBox> 
       </StackPanel> 
      </StackPanel> 
     </DockPanel> 
     <WebBrowser Grid.Row="1" Grid.Column="1" x:Name="htmlView"></WebBrowser> 
     <GridSplitter Width="5" Background="Chocolate"> 
      <Grid.Row>1</Grid.Row> 
      <Grid.Column>0</Grid.Column> 
     </GridSplitter> 
    </Grid> 

</Window> 

あなたが見ることができるように、それはスプリッタを持っています。私が意図した通りに動作しない

​​

:私は、スプリッタをドラッグすると。理想的には、赤のスタックパネルが右に移動します。それは常にhtmlビューに隣接しています。黄色のスタックパネルが幅を埋めるように伸びます。私は、さまざまな場所でストレッチに垂直アライメントを設定しようとしましたが、うまくいきません。彼らは常にこの固定幅にとどまります。

アップデート:私はtehの最新のは、グリッド内のグリッドされ、いくつかの異なるアプローチを試してみました:

<Window x:Class="OCLMEditor.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:OCLMEditor" 
     mc:Ignorable="d" 
     Title="Christian Life and Ministry Editor" Height="517.366" Width="729.7"> 
    <Grid Margin="0,0,0,3"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="auto"></ColumnDefinition> 
      <ColumnDefinition Width="50*"></ColumnDefinition> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="auto"></RowDefinition> 
      <RowDefinition></RowDefinition> 
     </Grid.RowDefinitions> 

     <StackPanel Grid.Row="0" Grid.ColumnSpan="2"> 
      <Menu x:Name="menuOCLM" IsMainMenu="True"> 
       <MenuItem x:Name="menuFile" Header="File"> 
        <MenuItem Header="Download Schedule Information"/> 
        <Separator/> 
        <MenuItem Header="Export Student Information"/> 
        <MenuItem Header="Import Student Information"/> 
        <Separator/> 
        <MenuItem x:Name="menuFilePageSetup" Header="Page Setup" Click="menuFilePageSetup_Click"/> 
        <MenuItem Header="Print Preview" Click="MenuItem_Click"/> 
        <Separator/> 
        <MenuItem Header="Update Google Calendar"/> 
        <Separator/> 
        <MenuItem Header="Exit"/> 
       </MenuItem> 
       <MenuItem x:Name="menuEdit" Header="Edit"> 
        <MenuItem x:Name="menuViewCopy" Header="Copy" Click="menuViewCopy_Click"/> 
        <Separator/> 
        <MenuItem x:Name="menuViewSelectAll" Header="Select All" Click="menuViewSelectAll_Click"/> 
       </MenuItem> 
       <MenuItem Header="View"/> 
       <MenuItem Header="Options"/> 
       <MenuItem Header="Help"/> 
      </Menu> 
     </StackPanel> 

     <DockPanel Grid.Row="1" Grid.Column="0"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="auto"></ColumnDefinition> 
        <ColumnDefinition Width="10*"></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <StackPanel Grid.Column="0" Background="Yellow" HorizontalAlignment="Stretch" Width="auto"> 
        <Label>Week of Meeting:</Label> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="auto"/> 
         </Grid.ColumnDefinitions> 
         <ComboBox> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 1</Label> 
           </StackPanel> 
          </ComboBoxItem> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 2</Label> 
           </StackPanel> 
          </ComboBoxItem> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 3</Label> 
           </StackPanel> 
          </ComboBoxItem> 
         </ComboBox> 
         <Image Grid.Column="1" HorizontalAlignment="Right" Source="event_time.png" Margin="2"></Image> 
        </Grid> 
        <Label>Note:</Label> 
        <ComboBox IsEditable="True"> 
         <ComboBoxItem>Sample Text</ComboBoxItem> 
        </ComboBox> 
        <Label>Bible Reading for Week:</Label> 
        <TextBox>PSALMS 60-68</TextBox> 
        <Label>Opening Song:</Label> 
        <ComboBox> 
         <ComboBoxItem>Song 1</ComboBoxItem> 
         <ComboBoxItem>Song 2</ComboBoxItem> 
         <ComboBoxItem>Song 3</ComboBoxItem> 
        </ComboBox> 
       </StackPanel> 
       <StackPanel Grid.Column="1" Orientation="Vertical" Margin="10,0,0,0" Background="Red"> 
        <Label>Chairman:</Label> 
        <ComboBox></ComboBox> 
        <Label>Auxiliary Counsellor 1:</Label> 
        <ComboBox></ComboBox> 
        <Label>Auxiliary Counsellor 2:</Label> 
        <ComboBox></ComboBox> 
        <Label>Prayer:</Label> 
        <ComboBox></ComboBox> 
       </StackPanel> 
      </Grid> 
     </DockPanel> 
     <WindowsFormsHost x:Name="formsHost" Grid.Row="1" Grid.Column="1" /> 
     <GridSplitter Width="5" Background="Chocolate"> 
      <Grid.Row>1</Grid.Row> 
      <Grid.Column>0</Grid.Column> 
     </GridSplitter> 
    </Grid> 

</Window> 

Updated Results

それは改善されています。しかし、私はそのスペースを埋めるために左の列です。

私はドックパネルを内側にも見ましたが、私はまだ間違っています。

ありがとうございます。興味のある方のため

答えて

1

<Window x:Class="OCLMEditor.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:OCLMEditor" 
     mc:Ignorable="d" 
     Title="Christian Life and Ministry Editor" Height="517.366" Width="729.7"> 
    <Grid Margin="0,0,0,3"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="auto"></ColumnDefinition> 
      <ColumnDefinition Width="50*"></ColumnDefinition> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="auto"></RowDefinition> 
      <RowDefinition></RowDefinition> 
     </Grid.RowDefinitions> 

     <StackPanel Grid.Row="0" Grid.ColumnSpan="2"> 
      <Menu x:Name="menuOCLM" IsMainMenu="True"> 
       <MenuItem x:Name="menuFile" Header="File"> 
        <MenuItem Header="Download Schedule Information"/> 
        <Separator/> 
        <MenuItem Header="Export Student Information"/> 
        <MenuItem Header="Import Student Information"/> 
        <Separator/> 
        <MenuItem x:Name="menuFilePageSetup" Header="Page Setup" Click="menuFilePageSetup_Click"/> 
        <MenuItem Header="Print Preview" Click="MenuItem_Click"/> 
        <Separator/> 
        <MenuItem Header="Update Google Calendar"/> 
        <Separator/> 
        <MenuItem Header="Exit"/> 
       </MenuItem> 
       <MenuItem x:Name="menuEdit" Header="Edit"> 
        <MenuItem x:Name="menuViewCopy" Header="Copy" Click="menuViewCopy_Click"/> 
        <Separator/> 
        <MenuItem x:Name="menuViewSelectAll" Header="Select All" Click="menuViewSelectAll_Click"/> 
       </MenuItem> 
       <MenuItem Header="View"/> 
       <MenuItem Header="Options"/> 
       <MenuItem Header="Help"/> 
      </Menu> 
     </StackPanel> 

     <DockPanel Grid.Row="1" Grid.Column="0"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*"></ColumnDefinition> 
        <ColumnDefinition Width="auto"></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <StackPanel Grid.Column="0" Background="Yellow" HorizontalAlignment="Stretch" Width="auto"> 
        <Label>Week of Meeting:</Label> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="auto"/> 
         </Grid.ColumnDefinitions> 
         <ComboBox> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 1</Label> 
           </StackPanel> 
          </ComboBoxItem> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 2</Label> 
           </StackPanel> 
          </ComboBoxItem> 
          <ComboBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="special_event.png"></Image> 
            <Label>Date 3</Label> 
           </StackPanel> 
          </ComboBoxItem> 
         </ComboBox> 
         <Image Grid.Column="1" HorizontalAlignment="Right" Source="event_time.png" Margin="2"></Image> 
        </Grid> 
        <Label>Note:</Label> 
        <ComboBox IsEditable="True"> 
         <ComboBoxItem>Sample Text</ComboBoxItem> 
        </ComboBox> 
        <Label>Bible Reading for Week:</Label> 
        <TextBox>PSALMS 60-68</TextBox> 
        <Label>Opening Song:</Label> 
        <ComboBox> 
         <ComboBoxItem>Song 1</ComboBoxItem> 
         <ComboBoxItem>Song 2</ComboBoxItem> 
         <ComboBoxItem>Song 3</ComboBoxItem> 
        </ComboBox> 
       </StackPanel> 
       <StackPanel Grid.Column="1" Orientation="Vertical" Margin="10,0,0,0" Background="Red"> 
        <Label>Chairman:</Label> 
        <ComboBox></ComboBox> 
        <Label>Auxiliary Counsellor 1:</Label> 
        <ComboBox></ComboBox> 
        <Label>Auxiliary Counsellor 2:</Label> 
        <ComboBox></ComboBox> 
        <Label>Prayer:</Label> 
        <ComboBox></ComboBox> 
       </StackPanel> 
      </Grid> 
     </DockPanel> 
     <WindowsFormsHost x:Name="formsHost" Grid.Row="1" Grid.Column="1" /> 
     <GridSplitter Width="5" Background="Chocolate"> 
      <Grid.Row>1</Grid.Row> 
      <Grid.Column>0</Grid.Column> 
     </GridSplitter> 
    </Grid> 

</Window> 

私は、グリッドを使用して、列の幅が正しい取得しなければならなかった:

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*"></ColumnDefinition> 
    <ColumnDefinition Width="auto"></ColumnDefinition> 
</Grid.ColumnDefinitions> 
関連する問題