Как указать CornerRadius для пользовательского элемента управления TextBox в WPF? - PullRequest
2 голосов
/ 03 декабря 2011

Я создал пользовательский ctextbox со следующим кодом.Но я не могу предоставить для этого границы круглого угла.

public class FilteredTextBox : TextBox
{


    public FilteredTextBox()
        : base()
    {
        IsNumeric = false;
        IsRegex = false;
        IsRequired = false;
        ErrorMsg = "";
        RegexText = "";
        HorizontalAlignment = HorizontalAlignment.Stretch;
        Margin = new Thickness(0);
        BorderThickness = new Thickness(1);
        var border = new Border {CornerRadius = new CornerRadius(4)};
     }
   }

Пожалуйста, укажите мне это?

Ответы [ 2 ]

7 голосов
/ 04 декабря 2011

Вы можете сделать это с помощью стиля для вашего пользовательского TextBox:

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>

    <Grid.Resources>
      <Style x:Key="CustomTextBoxStyle" TargetType="{x:Type TextBox}">
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="{x:Type TextBoxBase}">
              <Border
                CornerRadius="4"
                Padding="2"
                Background="{TemplateBinding Background}"
                BorderBrush="{TemplateBinding BorderBrush}"
                BorderThickness="1" >
                <ScrollViewer Margin="0" x:Name="PART_ContentHost"/>
              </Border>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
    </Grid.Resources>

    <Grid VerticalAlignment="Center" HorizontalAlignment="Center">
      <CustomTextBox Style="{StaticResource CustomTextBoxStyle}" Text="TextBox with CornerRadius" BorderBrush="Black" />
    </Grid>

  </Grid>
</Page>

надеюсь, это поможет

1 голос
/ 10 декабря 2011

Я хотел бы добавить это в качестве дополнения к отличному ответу punker76:

Если вы когда-либо захотите изменить любой из стилей по умолчанию для текущих FrameworkElement объектов, доступных в .Net, существует рядспособов подойти к нему, но мне всегда нравится этот удобный инструмент:

Показать мне шаблон

...