반응형

Label

  • 일반적으로 control에 대한 설명을 제공하는데 사용함 (Text)

 

TextBlock

  • 문자를 포함하는 Control의 가장 작은 단위 Content로 사용되며, 작은양의 유동 Contents를 표시gka.
  • Textblock의 주요 속성 (더 자세한 내용- Textblock properties)

    Foreground

    글씨에 적용되는 색상을 설정하는 Property

    FontWeight 글씨의 두께를 설정하는 Property
    FontSize 글씨의 크기를 설정하는 Property
    FontFamily 글씨체를 설정하는 Property
    FontStyle 글씨 스타일을 설정하는 Property
    Value: Normal / Italic / Obilique
    Text 텍스트 컨텐츠를 가져오거나 설정하는 Property
    TextAlingnment 텍스트의 가로맞춤을 설정하는 Property
    Value: Center/ Justify / Left / Right
    TextTrimming 컨텐츠가 영역을 넘어가게 될경우 적용할 Text를 잘라내는 동작을 설정하는 Property
    Value: None/ CharacterEllipsis / WordEllipsis
    TextWraping Text의 줄바꿈 형식을 설정하는 Property
    Value: NoWrap / Wrap / WrapWithOverflow

TextBox

  • 일반적인 입력 필드 Control

  • TextBox Style Template 구조

    • Border
      └ ScrollViewer
    • Placeholder Label 
<ControlTemplate TargetType="{x:Type TextBox}">
    <Grid>
        <Border x:Name="Bd" BorderBrush="{DynamicResource colorTxbLine_N}" BorderThickness="1" Background="{DynamicResource colorTxb_N}" SnapsToDevicePixels="true">
            <ScrollViewer x:Name="PART_ContentHost" VerticalAlignment="Center" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
        </Border>
        <Label x:Name="InternalWatermarkLabel" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Tag}" Visibility="Collapsed" Focusable="False" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Opacity="0.7"/>
    </Grid>
<ControlTemplate/>
CaretBrush

커서의 색상을 설정하는 Property

MaxLength 입력란에 넣을수 있는 최대문자 수를 설정하는 Property
Multiline 입력란에 여러줄을 입력할 수 있는 Control로 적용할지 여부를 설정하는 Property
Padding 입력란 내부에 여백을 설정하는 Property
IsReadOnly 수정이 불가하도록 설정하는 Property

 

 

PasswordBox

  • 비밀번호를 입력하는 Control
  • 해당 입력란에 문자를 입력하면 암호화하여 표시됨

  • PasswordBox 주요 속성 (더 자세한 내용-  Passwordbox properties)

    PasswordChar

    암호를 어떤 문자로 표시할지 설정하는 Property

     

ComboBox

  • 사용자가 목록에서 항목을 선택하거나 새 값을 입력할수 있도록 하는 Control

  • ComboBox Template 구조
    • Grid
      ├ ToggleButton
      ├ Placeholder label
      ├ Contents Presenter
      └ Pop up
          └Border
              └ScrolViewer
                  └ Grid
                      └ Canvas
                          └ Rectangle
                      └ ItemPresenter (Listbox속성 - ItemContainerStyle의 설정값을 가져옴)

<ControlTemplate TargetType="{x:Type ComboBox}">
    <Grid x:Name="MainGrid" SnapsToDevicePixels="true">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" Width="0"/>
        </Grid.ColumnDefinitions>
        <Popup x:Name="PART_Popup" AllowsTransparency="true" Grid.ColumnSpan="2" IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
            <Microsoft_Windows_Themes1:SystemDropShadowChrome x:Name="Shdw" Color="Transparent" MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{Binding ActualWidth, ElementName=MainGrid}">
                <Border x:Name="DropDownBorder" BorderBrush="{DynamicResource colorBgListLine}" BorderThickness="1" Background="{DynamicResource colorBgList}" Margin="0,2" >
                    <ScrollViewer x:Name="DropDownScrollViewer">
                        <Grid RenderOptions.ClearTypeHint="Enabled">
                            <Canvas HorizontalAlignment="Left" Height="0" VerticalAlignment="Top" Width="0">
                                <Rectangle x:Name="OpaqueRect" Fill="{Binding Background, ElementName=DropDownBorder}" Height="{Binding ActualHeight, ElementName=DropDownBorder}" Width="{Binding ActualWidth, ElementName=DropDownBorder}"/>
                            </Canvas>
                            <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Grid>
                    </ScrollViewer>
                </Border>
            </Microsoft_Windows_Themes1:SystemDropShadowChrome>
        </Popup>
        <ToggleButton x:Name="btn" Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource tgb_cmbGeneral}"/>
        <Label x:Name="InternalWatermarkLabel" Margin="12,0" Content="{TemplateBinding Tag}" Visibility="Collapsed" Focusable="False" Foreground="{DynamicResource colorLblBtn}" Opacity="0.7" VerticalAlignment="Center"/>
        <ContentPresenter Margin="18,0" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" Content="{TemplateBinding SelectionBoxItem}" ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}" HorizontalAlignment="Left" IsHitTestVisible="false" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center"/>
    </Grid>
  • Combobox 주요 속성 (더 자세한 내용-  Combobox properties)
ItemContainerStyle 각 항목에 대해 생성된 컨테이너 요소에 적용된 Stlye을 가져오거나 설정하는 Property
HasItems ItemControl에 항목이 있는지 여부를 나타내는 Property

 

반응형

'[====== Development ======] > C#' 카테고리의 다른 글

WPF(XAML) - ETC Class  (0) 2021.01.21
WPF(XAML) - Data Class  (0) 2021.01.21
WPF(XAML) - Button Class  (0) 2021.01.15
WPF(XAML) - Shape Class  (0) 2021.01.15
WPF(XAML) - Layout Class  (0) 2021.01.15

+ Recent posts