728x90
반응형
728x170
▶ MainPage.xaml
<Page x:Class="TestProject.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
FontFamily="나눔고딕코딩"
FontSize="16">
<Grid>
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal"
Spacing="10">
<AutoSuggestBox
Width="300"
TextChanged="autoSuggestBox_TextChanged"
SuggestionChosen="autoSuggestBox_SuggestionChosen" />
<TextBlock Name="textBlock" />
</StackPanel>
</Grid>
</Page>
728x90
▶ MainPage.xaml.cs
using System.Collections.Generic;
using System.Linq;
using Windows.Foundation;
using Windows.Graphics.Display;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace TestProject
{
/// <summary>
/// 메인 페이지
/// </summary>
public sealed partial class MainPage : Page
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 소스 리스트
/// </summary>
private List<string> sourceList = new List<string>()
{
"Abyssinian",
"Aegean",
"American Bobtail",
"American Curl",
"American Ringtail",
"American Shorthair",
"American Wirehair",
"Aphrodite Giant",
"Arabian Mau",
"Asian cat",
"Asian Semi-longhair",
"Australian Mist",
"Balinese",
"Bambino",
"Bengal",
"Birman",
"Bombay",
"Brazilian Shorthair",
"British Longhair",
"British Shorthair",
"Burmese",
"Burmilla",
"California Spangled",
"Chantilly-Tiffany",
"Chartreux",
"Chausie",
"Colorpoint Shorthair",
"Cornish Rex",
"Cymric",
"Cyprus",
"Devon Rex",
"Donskoy",
"Dragon Li",
"Dwelf",
"Egyptian Mau",
"European Shorthair",
"Exotic Shorthair",
"Foldex",
"German Rex",
"Havana Brown",
"Highlander",
"Himalayan",
"Japanese Bobtail",
"Javanese",
"Kanaani",
"Khao Manee",
"Kinkalow",
"Korat",
"Korean Bobtail",
"Korn Ja",
"Kurilian Bobtail",
"Lambkin",
"LaPerm",
"Lykoi",
"Maine Coon",
"Manx",
"Mekong Bobtail",
"Minskin",
"Napoleon",
"Munchkin",
"Nebelung",
"Norwegian Forest Cat",
"Ocicat",
"Ojos Azules",
"Oregon Rex",
"Oriental Bicolor",
"Oriental Longhair",
"Oriental Shorthair",
"Persian (modern)",
"Persian (traditional)",
"Peterbald",
"Pixie-bob",
"Ragamuffin",
"Ragdoll",
"Raas",
"Russian Blue",
"Russian White",
"Sam Sawet",
"Savannah",
"Scottish Fold",
"Selkirk Rex",
"Serengeti",
"Serrade Petit",
"Siamese",
"Siberian or´Siberian Forest Cat",
"Singapura",
"Snowshoe",
"Sokoke",
"Somali",
"Sphynx",
"Suphalak",
"Thai",
"Thai Lilac",
"Tonkinese",
"Toyger",
"Turkish Angora",
"Turkish Van",
"Turkish Vankedisi",
"Ukrainian Levkoy",
"Wila Krungthep",
"York Chocolate"
};
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainPage()
/// <summary>
/// 생성자
/// </summary>
public MainPage()
{
InitializeComponent();
#region 윈도우 크기를 설정한다.
double width = 800d;
double height = 600d;
double dpi = (double)DisplayInformation.GetForCurrentView().LogicalDpi;
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
Size windowSize = new Size(width * 96d / dpi, height * 96d / dpi);
ApplicationView.PreferredLaunchViewSize = windowSize;
Window.Current.Activate();
ApplicationView.GetForCurrentView().TryResizeView(windowSize);
#endregion
#region 윈도우 제목을 설정한다.
ApplicationView.GetForCurrentView().Title = "AutoSuggestBox 엘리먼트 : TextChanged/SuggestionChosen 이벤트 사용하기";
#endregion
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 자동 제안 박스 텍스트 변경시 처리하기 - autoSuggestBox_TextChanged(autoSuggestBox, e)
/// <summary>
/// 자동 제안 박스 텍스트 변경시 처리하기
/// </summary>
/// <param name="autoSuggestBox">자동 제안 박스</param>
/// <param name="e">이벤트 인자</param>
private void autoSuggestBox_TextChanged(AutoSuggestBox autoSuggestBox, AutoSuggestBoxTextChangedEventArgs e)
{
List<string> targetList = new List<string>();
string[] tokenArray = autoSuggestBox.Text.ToLower().Split(" ");
foreach(string source in sourceList)
{
bool found = tokenArray.All
(
(key)=>
{
return source.ToLower().Contains(key);
}
);
if(found)
{
targetList.Add(source);
}
}
if(targetList.Count == 0)
{
targetList.Add("검색 결과가 없습니다.");
}
autoSuggestBox.ItemsSource = targetList;
}
#endregion
#region 자동 제안 박스 제안 선택시 처리하기 - autoSuggestBox_SuggestionChosen(autoSuggestBox, e)
/// <summary>
/// 자동 제안 박스 제안 선택시 처리하기
/// </summary>
/// <param name="autoSuggestBox">자동 제안 박스</param>
/// <param name="e">이벤트 인자</param>
private void autoSuggestBox_SuggestionChosen(AutoSuggestBox autoSuggestBox, AutoSuggestBoxSuggestionChosenEventArgs e)
{
this.textBlock.Text = e.SelectedItem.ToString();
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > UWP' 카테고리의 다른 글
[C#/UWP] PasswordBox 엘리먼트 : PasswordChanged 이벤트 사용하기 (0) | 2021.07.18 |
---|---|
[C#/UWP] NumberBox 엘리먼트 : NumberFormatter 속성 사용하기 (0) | 2021.07.18 |
[C#/UWP] NumberBox 엘리먼트 : SpinButtonPlacementMode 속성 사용하기 (0) | 2021.07.18 |
[C#/UWP] NumberBox 엘리먼트 : AcceptsExpression 속성 사용하기 (0) | 2021.07.18 |
[C#/UWP] AutoSuggestBox 엘리먼트 : QuerySubmitted 이벤트 사용하기 (0) | 2021.07.18 |
[C#/UWP] ResourceDictionary 엘리먼트 : Source 속성을 사용해 컨트롤 컴팩트 크기 사용하기 (0) | 2021.07.18 |
[C#/UWP] FrameworkElement 엘리먼트 : 포커스 사각형 크기/색상 변경하기 (0) | 2021.07.18 |
[C#/UWP] Application 클래스 : FocusVisualKind 속성을 사용해 포커스 사각형 모양 변경하기 (0) | 2021.07.17 |
[C#/UWP] Grid 엘리먼트 : BorderBrush 속성에서 SystemControlBackgroundListMediumRevealBorderBrush 리소스 사용하기 (0) | 2021.07.17 |
[C#/UWP] AppBarButton 엘리먼트 : Style 속성에서 AppBarButtonRevealStyle 리소스 사용하기 (0) | 2021.07.17 |
댓글을 달아 주세요