Ich habe folgende XAML-Markup, die ich die GUI meiner C# Anwendung anzuzeigen bin mit:XAML- Wie wird die Höhe eines <TabControl> auf einen festen Wert gesetzt?
<Window x:Class.... >
<Window.Resources>
<Style ...>
...
<Setter Property="Template">
<Setter.value>
<ControlTemplate TargetType="{x:Type TabControl}">
<!--(Above markup goes here) -->
:
<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>
Die obige Markup innerhalb der folgenden Struktur an der Spitze der Datei verschachtelt
Später in der Datei haben, ich das folgende Markup:
</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>
Dieser XAML zeigt folgende GUI:
Wie Sie aus dem Bild sehen kann, ist die ‚wesentlichen Inhalts‘ der Seite überlappt die <StackPanel>
wo ich Tasten für die Navigation und andere Funktionen meiner Anwendung hinzugefügt haben (zurück, Auffrischen, etc.) .
Ich kann die Größe des Fensters, durch eine der Ecken ziehen und es so einstellen, dass die Tasten und andere Funktionen alle angezeigten richtig:
Es ist jedoch auch möglich, die Größe ändern Fenster zu viel (dh zu groß), wodurch zu viel Leerraum zwischen diesen Schaltflächen und Dingen angezeigt wird, und bewirkt außerdem, dass die Bilder auf der rechten Seite an einen anderen Ort verschoben werden als den, den ich beabsichtigt hatte :
Die Bilder auf der rechten Seite meines Anwendungsfensters werden von dem XAML-Markup im dritten Bitcode angezeigt, das ich in meine Frage kopiert habe.
Also, meine Frage ist-ist es eine Möglichkeit, die ich kann ‚fix‘ die Größe des <StackPanel>
, <Grid>
, <Style>
oder Kopfzeile der <TabPanel>
, wo ich mit den Navigationstasten und andere Bilder bin Anzeige so, dass sie nicht Größe geändert mit dem Rest des Fensters, wenn der Benutzer eine der Ecken des Fensters herumzieht?
Ich versuchte, die Height
Eigenschaft des <TabControl>
auf einen bestimmten Wert (zB 50) einstellen, aber dies verursacht der gesamte Inhalt des <TabControl>
-50 zu schrumpfen ... dh der gesamte Inhalt des Fensters dann in angezeigt wurde ein Bereich auf dem Fenster, das nur 50 Pixel hoch war ...
Grundsätzlich möchte ich den Inhalt, den ich hier gezeigt habe, gleich bleiben, egal wie der Benutzer mit der Anwendung interagiert, und nur den Inhalt darunter angezeigt dynamisch aktualisiert werden, wenn der Benutzer mit der Anwendung interagiert. Hat jemand irgendwelche Vorschläge?
Versuchen Sie, die Höhe von Zeile 1 (die jetzt die 0.05 * Höhe hat) auf auto zu setzen. Ich denke, das könnte die Überlappung Problem lösen – WPMed
Ja, das ist die Überlappung Problem gelöst - Prost! – someone2088
Ich habe das als Antwort hinzugefügt, damit Sie es akzeptieren können :) – WPMed