728x90

Wheel Event를 주기 위해서 사용하는 이벤트에서 Preview 있고 없고의 차이를 간략하게 설명하고자 합니다.

라우팅 이벤트를 알고 있다면 Skip>>하여도 됩니다.


PreviewMouseWheel

터널링 이벤트(Tunneling Event)라고 합니다.

터널링 이벤트란?
- 자식 엘리먼트로 이벤트 전달


MouseWheel

버블링 이벤트(Bubbleing Event)라고 합니다.

버블링 이벤트란?
- 현재 엘리먼트에서 상위 객체로 이벤트가 전달


버블링 이벤트와 터널링 이벤트는 짝을 이루며, 사용자가  MouseWheel을 움직여 이벤트가 발생 하였다면, PreviewMouseWheel 이벤트가 먼저 발생하게 되고, MouseWheel이 발생하게 됩니다.

728x90
728x90

break문

for문을 실행 중 break를 만나면 조건문에서 나가는 것이 아닌, for문 밖으로 나가버립니다.



break문 실행 코드


break문 결과



continue문

continue문은 바로 결과만 보아도 알겠지만, continue를 만나면 실행 없이 다음 반복으로 넘어갑니다.


continue문 실행 코드


continue문 결과


goto문

goto문은 사용자가 원하는 곳으로 점프하여 사용 할 수 있습니다.

하지만 코드 가독성이 나쁘기 때문에 잘 사용 하지 않으나, 잘만 사용 한다면 유용하다고 생각합니다. 


goto문 실행 코드


goto문 결과


728x90
728x90

이번에는 ComboBox 배치 방법에 대해 알아 보겠습니다.

저는 이번에 ComboBox를 사용하면서 위쪽으로 치우친 모양보다는, 세로로 정 가운데 있는 모양이 더 보기에 좋은거 같습니다.
그래서 세로 중앙으로 배치를 진행 해보겠습니다.


처음 모양은 이렇습니다.
위로 치우쳐 있네요.
보기에 안좋습니다.



세로 가운데로 위치하도록 변경 하였습니다.
보기 좋게 변경되었습니다.


이렇게 하기 위해서는 VerticalContentAlignment를 사용하면 되겠습니다.

VerticalContentAlignment="Center"


만약 가로로 사용을 하고자 한다면 HorizontalContentAlignment를 사용하면 되겠습니다.

HorizontalContentAlignment="Center"


728x90
728x90

네모 상자를 XAML에서 직접적으로 만들어주는게 아닌 코딩을 통하여 필요 수량에 따라 만들 수 있도록 하여 주겠습니다.



Grid grid_panel = new Grid(); //사각형을 감싸줄 Panel 생성

Rectangle rectangle = new Rectangle();//사각형 생성

rectangle.Width = 200;

rectangle.Height = 100;

rectangle.Stroke = Brushes.Black;


TextBlock textBlock = new TextBlock();//Text 생성

textBlock.Text = "TEXT_TEST";

textBlock.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;

textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Center;


grid_panel.Children.Add(rectangle);//Panel에 사각형 추가

grid_panel.Children.Add(textBlock);//Panel에 Text 추가


Canvas.SetLeft(grid_panel, 100);//Panel 위치 조정

Canvas.SetTop(grid_panel, 100);


this.panel_1.Children.Add(grid_panel);//Panel 등록




while문 3번 돌렸기 때문에 네모 상자가 3개 나왔다.

728x90
728x90


1. ComboBox 제거

ComboBox를 사용하다 보면, 내용을 초기화 해야 할 경우가 있습니다.

이경우 ComboBox(Name).Items.Clear(); 를 사용한다면, 텍스트 제거가 가능


2. ComboBox 생성

ComboBox(Name).Items.Add(str_spl[1]); 를 사용하여, 배열 수에 따라 계속 늘어난다.

728x90
728x90

TTAATAA

위와 같이 문자열에서 한글자 마다 해당 문자열에 따라 색상이 변경 되도록 하겠습니다.


var inlines = this.Hor_txtviewer1.Inlines;
inlines.Clear();

if (char_c == 'A')
{
    var run = new Run(char_c.ToString()); 
    run.Foreground = Brushes.Green;
    inlines.Add(run);
}
else if (char_c == 'T')
{
    var run = new Run(char_c.ToString());
    run.Foreground = Brushes.Red;
    inlines.Add(run);
}

728x90
728x90

TXT 파일을 불러와서 문자열 하나씩 잘라서 나타내도록 하겠습니다.

첫번째 방법
 - 문자열 길이만 큼 자른다.

string char_txt = txt_line.ToString();
    for (int i = 0; i < char_txt.Length; i++)
    {
        Console.WriteLine(char_txt[i]);
    }


두번째 방법
 - forech문을 통하여 한글자씩 자른다.

foreach (char char_c in txt_line)
{
    Console.WriteLine(char_str);
}

728x90
728x90

이번에는 데이터 형 변환 방법에 대해 설명드리겠습니다.


1. string to char

char[] Ch_ID = Chd_ID.ToCharArray();

만약 Textbox에 있는 문자열을 char형으로 변환 하려면 for 반복문을 사용하면 됩니다.


2. char to string

배열일 경우

string Ch_ID = new string(Chh_ID);


한개의 캐릭터 문자 일 경우

string Ch_ID = Chh_ID[1].ToString();

728x90
728x90

개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 오류가 발생 하였습니다.

해결 방법을 알아보기 전에 오류의 원인을 알아보겠습니다.



오류가 발생 한 원인

참조 또는 대입하려는 오브젝트 값이 Null 일 때 발생


해결방법

Null 예외 처리를 하면 됩니다.


728x90
728x90

빌드 중 함수를 평가 할 때 안전하지 않은 중단을 방지하려면 실행이 허용 된 모든 스레드라는 팝업창이 발생 하였습니다.

이 문제를 해결 하기 위해서, 도구 - 옵션 - 디버깅 순으로 이동합니다.

관리되는 호환성 모드 사용을 체크힙니다.


728x90

+ Recent posts