私は私のC#アプリケーションのGUIを表示するために使用しています以下のXAMLマークアップ、持っている:XAML- <TabControl>の高さを固定値に設定するにはどうすればよいですか?
<Grid x:Name="templateRoot" ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="ColumnDefinition0"/>
<ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="RowDefinition0" Height="Auto"/>
<RowDefinition x:Name="RowDefinition2" Height="0.05*"/>
<RowDefinition x:Name="RowDefinition1" Height="*"/>
</Grid.RowDefinitions>
<TabPanel x:Name="headerPanel" Background="White" Grid.Column="0" IsItemsHost="true" Margin="2,2,2,0" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1" VerticalAlignment="Top"/>
<StackPanel Grid.Row="1" Orientation="Horizontal" FlowDirection="RightToLeft">
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Horizontal" FlowDirection="LeftToRight" Height="30" VerticalAlignment="Top">
<Button Style="{DynamicResource NoChromeButton}" Click="backBtn_Click" Margin="0,0,0,0" HorizontalAlignment="Left" >
<Image Source="C:\...\arrow_left.png" Height="30" Width="40" />
</Button>
<Button Style="{DynamicResource NoChromeButton}" Click="RefreshBtn_Click" Margin="0,0,0,0" HorizontalAlignment="Left" >
<Image Source="C:\...\arrow_loop3.png" Height="30" Width="30" />
</Button>
<Button Style="{DynamicResource NoChromeButton}" Click="referThis" Margin="0,0,0,0" HorizontalAlignment="Left" HorizontalContentAlignment="Left" Height="30" Width="80">
<TextBlock>Refer Patient</TextBlock>
</Button>
</StackPanel>
<Border x:Name="contentPanel" BorderBrush="Green" BorderThickness="5" Background="{TemplateBinding Background}" Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained" Grid.Row="2" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local">
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
</Grid>
上記のマークアップは、ファイルの先頭に次のような構造の中にネストされています
<Window x:Class.... >
<Window.Resources>
<Style ...>
...
<Setter Property="Template">
<Setter.value>
<ControlTemplate TargetType="{x:Type TabControl}">
<!--(Above markup goes here) -->
を
以降のファイルでは、私は次のマークアップを持っている:
</ControlTemplate>
</Setter.value>
</Setter>
</Style>
...
</Window.Resources>
<Grid Name = "grid">
<Image x:Name="Connected" Source="...\abc.png" Height="50" Width="50" Margin="750, 0, -5, 640"></Image>
<!-- A few more image tags here -->
<TabControl ... >
<!-- XML for each of the tab items & their content here -->
</TabControl>
</Grid>
</Window>
このXAMLは、以下のGUIが表示されます。
あなたがイメージから見ることができるように、ページの「主な内容は、」私は、ナビゲーション用のボタンを追加した<StackPanel>
を重ね、そして私のアプリケーション(背中、リフレッシュなど)の他の機能れます。
ボタンやその他の機能がすべて正しく表示されるように、私は、コーナーのいずれかをドラッグして、ウィンドウのサイズを変更し、それを調整することができます:
をしかし、サイズを変更することも可能ですウィンドウを大きくしすぎると(つまり大きすぎる)、これらのボタンと物事の間に余りに多くの空白が表示され、また、右端のイメージが意図したものとは異なる場所に移動する:
私のアプリケーションウィンドウの右端にある画像は、質問にコピーしたコードの3番目のビットにXAMLマークアップによって表示される画像です。
だから、私の質問は - 私は「修正」<StackPanel>
の大きさ、<Grid>
、<Style>
または私はナビゲーションボタンや他の画像を表示しています<TabPanel>
のヘッダように、彼らはじゃないことができる方法がありますユーザーがウィンドウの角の1つをドラッグすると、ウィンドウの残りの部分でサイズが変更されますか?
私は特定の値(例えば50)に<TabControl>
のHeight
プロパティを設定しようとしたが、これは50に縮小する<TabControl>
の全体の内容を引き起こした...すなわち、すべてのウィンドウの内容を、その後で表示されましたウィンドウ上の高さが50ピクセルしかない領域...
基本的には、私がここに示した内容は、ユーザーがアプリケーションとやり取りする方法に関係なく、同じ内容を維持したいと思います。ユーザーがアプリケーションとやり取りするときに動的に更新されます。誰でも何か提案がありますか?
行1の高さ(現在は0.05 *高さ)をautoに設定してみてください。私はそれが重複の問題を解決するかもしれないと思う。 – WPMed
うん、それは重複の問題を解決した - 歓声! – someone2088
私は答えとしてあなたがそれを受け入れることができるように追加しました:) – WPMed