WPF: TextBlock & Label


TextBlock을 알아보자.

WPF에서 TextBlock은 말 그대로 Text를 처리하는 컨트롤 중 하나이다.
이렇게 Text를 처리하는 컨트롤로 Label이 있지만, Label은 짧은 1줄 정도의 텍스트를 처리하는 용도라고 한다면, TextBlock은 여러 줄의 문자열을 처리할 수 있다.
(대신, Label은 이미지를 담을 수도 있지만, TextBlock은 문자열만 담을 수 있다.)

간단한 예제를 한번 보자. (feat. 나라 사랑 ㅎㅎ) __φ(。。)
MyWPFApp.xaml
<Window x:Class="WpfApp1.MyWPFApp"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="180" Width="220"
        ResizeMode="CanResizeWithGrip">
    <Window.Resources>
    </Window.Resources>
    <Grid Margin="10">
        <TextBlock Margin="10" FontSize="14"> 우리 나라 좋은 나라 대한민국 만세!!</TextBlock>
    </Grid>
</Window>

예제에서 볼 수 있듯이 <TextBlock>과 </TextBlock> 이라는 태그 안에 원하는 텍스트를 입력하면 쉽게 윈도우에 표시할 수 있다.
그러나, 윈도우 크기에 비해 긴 문자열을 입력했을 때 글자가 한번에 표시되지 않는다.
이럴 때 활용할 수 있는 몇 가지 방법을 알아보자. (´▽`)ノ♪
MyWPFApp.xaml
<Window x:Class="WpfApp1.MyWPFApp"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="180" Width="220"
        ResizeMode="CanResizeWithGrip">
    <Window.Resources>
    </Window.Resources>
    <StackPanel>
        <TextBlock Margin="10" FontSize="14" Foreground="Red"> 우리 나라 좋은 나라 대한민국 만세!!</TextBlock>
        <TextBlock Margin="10" FontSize="14" Foreground="Blue" TextTrimming="CharacterEllipsis"> 우리 나라 좋은 나라 대한민국 만세!!</TextBlock>
        <TextBlock Margin="10" FontSize="14" Foreground="Green" TextWrapping="Wrap"> 우리 나라 좋은 나라 대한민국 만세!!</TextBlock>
    </StackPanel>
</Window>

파란색으로 작성된 텍스트 블럭은 'TextTrimming'이라는 속성을 'CharacterEllipsis'로 했을 때의 결과를 보여준다.
윈도우 크기를 넘어서는 텍스트의 경우 '...'을 표시하여 뒤에 더 많은 글자가 있음을 나타내고 있다.

녹색으로 작성된 텍스트 블럭은 'TextWrapping'이라는 속성을 'Wrap'으로 했을 때의 결과를 보여준다.
윈도우 크기를 넘어서는 텍스트의 경우 자동으로 다음 줄에 이어서 텍스트를 표시한다.

텍스트 블럭에서 텍스트의 일부만 꾸미는 작업도 가능하다. (글자를 굵게 한다던지, 색상을 바꾼다던지...)
그럴 때는 'Span'을 사용한다.
MyWPFApp.xaml
<Window x:Class="WpfApp1.MyWPFApp"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="180" Width="220"
        ResizeMode="CanResizeWithGrip">
    <Window.Resources>
    </Window.Resources>
    <StackPanel>
        <TextBlock Margin="10" FontSize="14" TextWrapping="Wrap">
            우리 나라
            <Span FontWeight="Bold" Foreground="Blue">좋은 나라</Span>
            <Span Background="Black" Foreground="Yellow"> 대한민국 만세!!</Span>
        </TextBlock>
    </StackPanel>
</Window>

Label을 알아보자.

Label은 텍스트를 처리하는 아주 간단한 컨트롤 중 하나이다.
텍스트를 처리하는 텍스트 블록과 달리 레이블은 Content 속성을 가지면서 다른 컨트롤을 다룰 수 있다.
그래서, 단순히 텍스트만을 처리하는 목적이라면 레이블에 비해 텍스트 블록을 사용하는 것이 훨씬 가볍다는 점을 기억하자!! ٩(ˊ〇ˋ*)و

다음의 예제를 한번 살펴보자!

MyWPFApp.xaml
<Window x:Class="WpfApp1.MyWPFApp"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="180" Width="220"
        ResizeMode="CanResizeWithGrip">
    <Window.Resources>
    </Window.Resources>
    <StackPanel Margin="10">
        <Label Content="_ID:" Target="{Binding ElementName=txtID}" />
        <TextBox Name="txtID" />
        <Label Content="_PW:" Target="{Binding ElementName=txtPW}" />
        <TextBox Name="txtPW" />
    </StackPanel>
</Window>

활성화 된 윈도우에서 'Alt' 키를 눌렀을 때  'ID' 와 'PW'의 머리글자에 밑 줄이 생기는 것을 확인할 수 있다.
그리고, 키보드로 머리글자를 눌렀을 때 각 레이블에 바인딩 되어 있는 텍스트 박스로 커서가 넘어가는 것도 확인할 수 있다. (⊙_⊙)

이런 액세스 키는 문자 앞의 밑줄(_)을 통해 지정할 수 있다. 바꿔 말하면, 꼭 첫 번째 문자일 필요는 없다는 의미이다. ㅎㅎ





spacer

[Excel Tip-06] 조건부 서식을 활용하자!

엑셀은우리가 몰라서 사용을 못하는 것 뿐이지 데이터를 표시하고 취합하며 연산하는데 단연 최고라고 할 수 있다.
이번에는 장황하게 나열된 데이터를 보다 직관적으로 볼 수 있는 유용한 팁!!
함께 알아보자.


조건부 서식 활용하기

다음과 같은 엑셀 문서가 있을 때,

품목별로 단가와 수량, 그리고 할인율이 적용되어 일목 요연하게 금액을 표시하는데 부족함이 없다.
그런데, 약간의 상상을 더해서 위의 예제가 수 많은 물품들의 월간 매입량을 나타내는 표라고 가정하자.
엄청나게 많이 표시되고 있는 데이터 중에서 특정 조건에 해당되는 항목들이 다른 셀들과 다르게 표시된다면,
주어진 데이터를 읽어보는데 충분히 큰 도움이 될 것이다.

조건부 서식이 여기서 큰 도움이 될 수 있다.
(단축키는 Alt + O, D)

합계가 50,000 이상이 되는 셀의 숫자를 빨간색, 굵게 표시해보자.
그러기 위해서는 먼저 조건부 서식을 지정할 셀들을 선택해주고, 단축키를 통해 조건부 서식 창을 활성화시켜서, '새 규칙'을 클릭한다.

표시되는 새 규칙 창에서 '다음을 포함하는 셀만 서식 지정'을 클릭하고, 아래의 조건을 작성한 다음 '서식' 버튼을 클릭한다.

조건에 맞는 셀을 표시할 글꼴을 지정한 다음,

미리 보기 창을 통해 반영하고자 하는 글꼴이 제대로 되었는지 다시 한 번 확인하고,
 
확인을 누른다.

다시 한번 확인을 눌러서 조건부 서식 설정을 완료한다.

이렇게 해서 특정 조건에 따라 셀의 표시를 지정하였다. ㅎㅎ


조건부 서식의 응용

다음과 같은 엑셀 문서가 있을 때,

왠지 Item01부터 Item07까지의 표가 심심한 느낌이 든다. (아님 말고... ㅎㅎㅎ)
항목마다 번갈아가면서 셀의 채우기 색상을 두어 심심함을 없애고자 한다.
이 때도 '조건부 서식'은 유용하게 활용될 수 있다.
셀들을 선택한다음 조건부 서식 창을 열고 새 규칙을 선택한다.
이번에는 규칙 유형으로 '수식을 사용하여 서식을 지정할 셀 결정'을 선택하고 수식 부분에 다음과 같이 입력한다.

여기서 MOD 함수는 앞의 숫자를 뒤의 숫자로 나눈 나머지를 구할 때 사용하는 함수이고,
ROW 함수는 현재의 행 번호를 반환하는 함수이다.
다시 말해, 위의 수식은 짝수 행들을 의미한다.
그리고나서 서식을 지정한 다음 확인!!

짝수 행의 셀이 연한 연두색으로 채워진 것을 확인할 수 있다. ㅎㅎ



spacer

[Excel Tip-05] 드롭다운리스트 나타내기!

엑셀을 이용하여 종종 데이터를 취합하는데 사용하기도 한다.
다시 말해, 특정한 포맷의 엑셀 파일을 만들고 관계자들로 하여금 데이터를 채우도록 하기도 하는데, 
이럴 때 활용할 수 있는 엑셀의 유용한 팁!!
함께 알아보자.


드롭다운리스트 나타내기


사람마다 사용하는 단어가 다르고 표현하는 방법이 다르다보니
일괄적으로 취합하여 데이터를 가공하는데 간혹 애로사항이 발생하는 경우도 많다.
셀에 직접 입력하는 방식이 아닌 목록을 만들어서 선택하도록 유도한다면,
이런 다름에 의해 생기는 문제를 많이 줄일 수 있다.

아래의 엑셀 시트를 살펴보자.

'품목'란에 있는 아이템들을 사용자가 직접 입력하는 것이 아니라 드롭다운 목록을 통해 선택할 수 있도록 만들어보자.
그러기 위해서는 먼저 참조가 되는 리스트를 작성해야 한다.

표의 왼쪽 편으로 열을 삽입하고, 거기에 리스트를 작성하자.
작성된 리스트를 품목 열에 드롭다운 목록으로 추가하기 위해서는 '유효성 검사' 기능을 사용한다.
(단축키는 Alt + A, V, V)

먼저, 유효성 검사를 적용할 셀들을 선택한다.
이 때, Shift키를 누른채로 화살표 키를 누르면 다중 선택이 되므로 영역을 지정하기 쉽다.
(참고로, Ctrl키를 누른채 화살표를 누르면 연속된 데이터 셀의 마지막 (또는 처음)으로 한번에 이동하니 헷갈리지 마시길... ㅎㅎ)

셀들을 선택한 후 '유효성 검사' 창을 연다.

그리고, 제한 대상을 '목록'으로 변경한 다음, 오른쪽의 '드롭다운 표시'를 체크한다.
끝으로, 목록의 항목들에 해당하는 참조 셀들을 지정해주면 된다.

여기까지 설정을 마쳤다면, 유효성 검사를 적용한 셀로 가서 오른쪽에 표시되는 버튼을 클릭해보자.
드롭다운 목록에 표시되는 것을 확인할 수 있다. ㅎㅎ

응용
- 목록에 추가될 항목들은 꼭 예제와 같이 별도의 셀에 지정하지 않고, 직접 '원본' 란에 작성하여도 된다.
  (콤마를 통해 항목들을 구분한다.)



spacer

[Excel Tip-04] 열 너비 (or 행 높이) 수정하기!

이번에는 열의 너비나 행의 높이를 재빠르게 수정하는 유용한 팁!!
함께 알아보자.


1. 열 너비 (or 행 높이) 지정하기


다음과 같은 엑셀 문서가 있을 때,

표의 제일 위쪽 부분을 약간 강조하기 위해 행의 높이를 다른 셀보다 약간 높게 가져가고자 할 때,
역시나 가장 먼저 쳐다보게 되는 것은 마우스일 것이다.

이럴 때 사용하는 단축키는 Alt + O, R, E (열 너비의 경우 Alt + O, C, W) 이다.
행 높이를 변경하고자 하는 셀에 가서 단축키를 눌러보자.

행 높이를 변경하는 창이 하나 나타난다. (현재 행 높이는 15.75 이다.)
여기서 변경하고자 하는 값을 입력하고 '확인' 버튼을 클릭하면 행 높이가 변경된다.

< 행 높이로 25를 입력하였다. >


2. 열 너비 (or 행 높이)를 자동으로 맞추기


방금 전의 예제에서 이번에는 변경된 행 높이를 자동으로 맞춰보자.
당연히 왼쪽의 행 번호 2와 3 사이의 경계선으로 마우스 포인터를 이동하여 더블 클릭을 할 것이다.
이것 또한 단축키가 있었으니, 바로 Alt + O, R, A (열의 경우 Alt + O, C, W)이다.

행 높이를 자동 맞춤하려는 셀로 이동하여 단축키를 눌러보자.

순식간에 행 높이가 자동으로 맞춰지는 것을 확인할 수 있다.

응용
- 열 너비나 행 높이를 변경할 때 엑셀 시트의 위쪽 또는 왼쪽을 눌러 변경하고자 하는 열 전체나 행 전체
  선택하지 않아도 변경이 가능하다. 
- 만약 여러 열의 너비나 행의 높이를 변경할때는 Ctrl + 클릭 등을 이용하여 셀을 다중 선택한 다음 변경
  시킬 수도 있다.




spacer