2013-08-06 8 views
5

Jestem bardzo zdezorientowany, dlaczego niektóre z moich pól tekstowych i przycisków są odcięte, czy ktoś może mi pomóc rozwiązać ten problem? Dzięki!!

wpf: Przyciski, pola tekstowe, odcinanie się

XAML KOD

<Grid> 
     <TabControl> 
      <TabItem Name="tabHome"> 
       <TabItem.Header> 
        <Label Content="Home" MouseLeftButtonDown="tabHome_Click"/> 
       </TabItem.Header> 
       <Grid> 
        <Button Content="Parse" Height="23" x:Name="btn_parse" Width="75" Click="buttonParse_Click" Margin="180,10,180,176"/> 
        <TextBox IsReadOnly="True" x:Name="txtbox_filepath" Height="25" Width="135" Margin="151,52,150,132" /> 
        <Button Content="Reset" Height="23" x:Name="btn_reset" Width="75" Margin="180,122,180,64" Click="buttonReset_Click"/> 
       </Grid> 
      </TabItem> 
      <TabItem Name="tabConfig"> 
       <TabItem.Header> 
       <Label Content="Configuration" MouseLeftButtonDown="tabConfig_Click"/> 
       </TabItem.Header> 
       <ScrollViewer> 
        <StackPanel Name="panelConfig"> 
        </StackPanel> 
       </ScrollViewer> 
      </TabItem> 
<Grid> 

Zrzut

screenshot

Jak widać przycisk i pole tekstowe jest odcięta w rogach.
Dziękuję za pomoc, którą doceniam.

Odpowiedz

8

Po podaniu wartości marginesowej takiej jak ta Margin="180,10,180,176" oznacza to, że kontrola musi być umieszczona 180 dip od lewej i 10 dip od góry, 180 od prawej i 176 od dołu w odniesieniu do kontroli rodzica. Twoje elementy sterujące zostały obcięte z powodu wysokich wartości marginesów.

enter image description here

Uwaga: DIP - urządzenie niezależne pikseli.

Lepiej jest utworzyć RowDefinitions dla Grid i umieścić kontrolki w oddzielnych wierszach z rozsądną wartością marginesu, jak pokazano poniżej.

<Grid> 
    <TabControl> 
     <TabItem Name="tabHome"> 
      <TabItem.Header> 
       <Label Content="Home"/> 
      </TabItem.Header> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto"/> 
        <RowDefinition Height="Auto"/> 
        <RowDefinition Height="Auto"/> 
       </Grid.RowDefinitions> 
       <Button Grid.Row="0" Content="Parse" Height="23" x:Name="btn_parse" Width="75" Margin="10" /> 
       <TextBox Grid.Row="1" IsReadOnly="True" x:Name="txtbox_filepath" Height="25" Width="135" Margin="10" /> 
       <Button Grid.Row="2" Content="Reset" Height="23" x:Name="btn_reset" Width="75" Margin="10"/> 
      </Grid> 
     </TabItem> 
     <TabItem Name="tabConfig"> 
      <TabItem.Header> 
       <Label Content="Configuration"/> 
      </TabItem.Header> 
      <ScrollViewer> 
       <StackPanel Name="panelConfig"> 
       </StackPanel> 
      </ScrollViewer> 
     </TabItem> 
    </TabControl> 
</Grid> 
+0

Dziękuję, wziąłem twoją sugestię, a teraz jak mógłbym zrobić odstęp między przyciskami a polami tekstowymi? – AustinT

+0

Podaj rozsądną wartość depozytu zabezpieczającego, taką jak 5 lub 10. Sprawdź zaktualizowaną odpowiedź. –

+0

dzięki! Doceniam twoją pomoc! – AustinT

0

Usuń właściwości Height, Width i Margin.

Nie należy używać projektanta Visual Studio do tworzenia interfejsów użytkownika WPF.

Spójrz na http://wpftutorial.net/LayoutProperties.html

+0

@ReedCopsey Dokładnie o tym mówię. –

3

Ty jawnie ustawienie Height i Width dla przycisków, ale wartości używasz są zbyt małe.

Jeśli zostawisz je wyłączyć, przycisk powinien wyświetlać poprawnie:

<Button Content="Parse" x:Name="btn_parse" Click="buttonParse_Click" Margin="180,10,180,176"/> 
<Button Content="Reset" x:Name="btn_reset" Margin="180,122,180,64" Click="buttonReset_Click"/> 

pamiętać, że można zrobić lepiej z układu, jeśli to zaprojektować samemu stosując Grid lub innego pojemnika zamiast korzystania Margin, także.

Powiązane problemy