๋๋ฒ์งธ Slog ์ ๋๋ค.
๋ค์ด์ด๋ก๊ทธ์ ํ
์คํธ ์
๋ ฅ์ฐฝ์ ๋ฃ์๋๋ฐ
ํ
์คํธ ์
๋ ฅ์ ๋ฉํฐ๋ผ์ธ์ ํ์ฉ ํ๊ณ ์ถ๊ณ
์ํฐ๋ IsDefault๋ฅผ ์ง์ ํ๊ณ ์ถ์๋
์ธ์ ์๋ MultiLineTextInputBehavior ์ ๋๋ค.
๊น์ ์ฌ๋ ค์ ๊ณต์ ํ ๊น ํ๋ค๊ฐ
๋๋ฌด ์งง์์ ๊ทธ๋ฅ ์ฝ๋๋ก ์ฌ๋ ค ๋ด
๋๋ค.
public class MultiLineTextInputBehavior : Behavior<TextBox>
{
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.PreviewKeyDown += AssociatedObject_PreviewKeyDown;
}
protected override void OnDetaching()
{
base.OnDetaching();
AssociatedObject.PreviewKeyDown -= AssociatedObject_PreviewKeyDown;
}
private void AssociatedObject_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.Modifiers == ModifierKeys.Alt && Keyboard.IsKeyDown(Key.Enter))
{
var pos = AssociatedObject.SelectionStart;
StringBuilder sb = new(AssociatedObject.Text);
if (AssociatedObject.SelectionLength > 0)
sb.Remove(AssociatedObject.SelectionStart, AssociatedObject.SelectionLength);
sb.Insert(AssociatedObject.SelectionStart, Environment.NewLine);
AssociatedObject.Text = sb.ToString();
AssociatedObject.SelectionLength = 0;
AssociatedObject.SelectedText = "";
AssociatedObject.SelectionStart = pos + 1;
e.Handled = true;
}
}
}
๊ฐํ์ Alt + Enter๋ก ์ฒ๋ฆฌ ํ๊ณ
์ค๊ฐ์ remove ๋ถ๋ถ์
ํน์ ๋ฒ์๋ฅผ ์ ํ ํ Alt + Enter ํ ๊ฒฝ์ฐ
ํด๋น ๋ถ๋ถ์ ์ญ์ ํ๊ณ ๊ฐํ ๋๊ฒ ํ๊ธฐ ์ํด
๋ฃ์์ต๋๋ค.
๊ฐ์ ์ ์์ผ๋ฉด ๋๊ธ ๋ถํ ๋๋ ค์