Элементы управления WinUI 3 C++ — базовые текстовые элементы

На этом занятии мы начнём изучать элементы управления WinUI 3 C++. В WinUI C++ представлен большой набор готовых элементов управления, мы начнём с базовых компонентов для отображения и ввода текста.

Ниже перечислены основные элементы, работающие с текстом:

TextBlock:Статический вывод текста, поддерживает форматированный текст и встроенные стили

RichTextBlock:Только для чтения форматированный текст, поддерживает абзацы, курсив, полужирный шрифт, вставку изображений

TextBox:Однострочное поле для ввода обычного текста

RichEditBox:Многострочный редактор форматированного текста (настройка шрифта, цвета, абзацев)

PasswordBox:Поле для ввода пароля, скрывает введённые символы

AutoSuggestBox:Поле ввода с выпадающим списком автодополнения

NumberBox:Ввод только чисел, ограничение минимального/максимального значения, поддержка десятичных дробей


    <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="30">
        
        <TextBlock Text="Hello, FoxDevelop!" FontSize="24" Margin="0,0,0,20"/>
        
        <RichTextBlock>
            <Paragraph>
                <Run Text="This is a sample WinUI application."/>
            </Paragraph>
        </RichTextBlock>

        <TextBox x:Name="myTextBox" PlaceholderText="Enter your name" Text="" Margin="0,20,0,0"/>

        <RichEditBox PlaceholderText="Enter some rich text" Margin="0,20,0,0"/>

        <PasswordBox PlaceholderText="Enter your password" Margin="0,20,0,0"/>

        <AutoSuggestBox PlaceholderText="Search..." Margin="0,20,0,0"/>

        <NumberBox PlaceholderText="Enter a number" Margin="0,20,0,0"  Maximum="100" Minimum="0"/>

        <Button Content="Click Me" Margin="0,20,0,0" Click="Button_Click"/>
    </StackPanel>Code language: HTML, XML (xml)

Наведите курсор на имя события и нажмите F12 — функция обработки нажатия кнопки создастся автоматически

#include "pch.h"
#include "MainWindow.xaml.h"
#if __has_include("MainWindow.g.cpp")
#include "MainWindow.g.cpp"
#endif


#include <winrt/Microsoft.UI.Xaml.Controls.h>
#include <winrt/Microsoft.UI.Xaml.h>

using namespace winrt;
using namespace Microsoft::UI::Xaml;
using namespace Microsoft::UI::Xaml::Controls;
using namespace Windows::Foundation;

// Документация по WinUI: http://aka.ms/winui-project-info.

namespace winrt::AppWinui::implementation
{
    int32_t MainWindow::MyProperty()
    {
        throw hresult_not_implemented();
    }

    void MainWindow::MyProperty(int32_t /* value */)
    {
        throw hresult_not_implemented();
    }

}

void winrt::AppWinui::implementation::MainWindow::Button_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
    myTextBox().Text(L"welcome to foxdevelop.com");//Установить текст для TextBox
    hstring inputText = myTextBox().Text(); //Считать текст из TextBox
    OutputDebugStringW(inputText.c_str());
}
Code language: C++ (cpp)

С помощью метода myTextBox().Text можно как записывать, так и считывать текст. Если передать строку в формате L»текст», значение установится; если вызвать без аргументов hstring inputText = myTextBox().Text(); — вернётся текущий введённый текст.

Примечание: даже если мы задаём стандартный текст через myTextBox().Text(L"welcome to foxdevelop.com");, любой текст, введённый пользователем в интерфейсе, будет доступен для чтения в коде после нажатия кнопки.

Все остальные текстовые элементы поддерживают чтение и запись значений по аналогичному синтаксису, мы не будем разбирать их по отдельности здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *