2015-12-21 2 views
1

Я пытаюсь заставить свой UserControl отображать закругленные углы.Округлые углы в UserControl, не показывающие

Это моя разметка:

<Border CornerRadius="10" Padding="5" HorizontalAlignment="Center" VerticalAlignment="Center" > 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="50" /> 
      <RowDefinition Height="20" /> 
      <RowDefinition Height="25" /> 
      <RowDefinition Height="25" /> 
      <RowDefinition Height="25" /> 
      <RowDefinition Height="25" /> 
      <RowDefinition Height="50" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="10" /> 
      <ColumnDefinition Width="220" /> 
      <ColumnDefinition Width="10" /> 
     </Grid.ColumnDefinitions> 
     <Grid.Background> 
      <ImageBrush ImageSource="{StaticResource NavyBlueGround}" /> 
     </Grid.Background> 
     <Label Grid.Column="1" Grid.Row="0" Style="{StaticResource GelTitle}" Content="Customer Search" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> 
     <Label Grid.Row="1" Grid.Column="1" Style="{StaticResource GelCaption}" Content="Enter Customer First Name" VerticalAlignment="Bottom" /> 
     <TextBox Grid.Row="2" Grid.Column="1" Name="txtForeName" Background="White" VerticalContentAlignment="Center"/> 
     <Label Grid.Row="3" Grid.Column="1" Style="{StaticResource GelCaption}" Content="Enter Customer Last Name" VerticalAlignment="Bottom" /> 
     <TextBox Name="txtSurname" Grid.Column="1" Grid.Row="4" FontSize="14" Text="hello" VerticalContentAlignment="Center" VerticalAlignment="Stretch" HorizontalContentAlignment="Center" /> 
     <Button Name="btnCustomerSearch" Grid.Column="1" Grid.Row="5" Style="{StaticResource GelButton}" Content="Search" Click="btnCustomerSearch_Click" VerticalAlignment="Center" /> 
    </Grid> 
</Border> 

и это то, что он выглядит следующим образом:

enter image description here

ответ

3

Вместо использования фон для Grid, используйте его для своей границы.

<Border CornerRadius="10" Padding="5" HorizontalAlignment="Center" VerticalAlignment="Center" > 
    <Border.Background> 
     <ImageBrush ImageSource="{StaticResource NavyBlueGround}" /> 
    </Border.Background> 

EDIT: Причина этой проблемы заключается в том, что граница (когда набивка = 5) устанавливает допустимые пределы своего ребенка 5 пикселей в определении также CornerRadius устанавливает допустимые пределы сетки в еще дальше..

Таким образом, границы сетки (и ее фона) не совпадают с закругленными углами.

+0

Выглядит многообещающе Я попробую, как только вернусь. Спасибо –

+1

Отличный ответ и так прост. Я утверждаю, что я все еще привык к WPF, но чем больше я узнаю, тем больше предпочитаю его по WinForms. Спасибо –

+0

Спасибо. Я также обновил сообщение, чтобы уточнить –

1

У вас должно быть что-то еще. Я вставил ваш код в новый проект с помощью UserControl, и он отлично выглядит.

Example Image

Можете ли вы предоставить более подробную информацию, если новый проект не работает то же самое для вас, и сравнить различия, чтобы помочь устранить?

+0

Привет, спасибо за все время в этом. Я принял более простой ответ. Что касается вашей теории, я бы с тобой согласился с тобой. Я использую стили для внутренних элементов, но никоим образом не влияют на границы, поэтому он должен быть просто «вещью» использования стилей для внутренних элементов, которые «могут» влиять на внешние границы. Ответ, который я принял, устраняет это: quandary «Большое вам спасибо за комментарий/ответ –

+0

Он отлично подходит для вас, потому что вы также установили фон для границы :) –

Смежные вопросы