Controles WinUI 3 C++ – Controles básicos de texto

Nesta aula, vamos começar a estudar os controles do WinUI 3 C++. O WinUI C++ conta com uma vasta gama de controles nativos, e começamos pelos controles fundamentais de exibição e entrada de texto.

Abaixo estão os controles relacionados a texto:

TextBlock:Exibição de texto estático, suporta texto rico e estilos inline

RichTextBlock:Visualizador de texto rico somente leitura, aceita parágrafos, itálico, negrito e imagens incorporadas

TextBox:Caixa de entrada de texto de linha única

RichEditBox:Editor de texto rico multilinha (configuração de fonte, cor e parágrafos)

PasswordBox:Campo de senha, oculta os caracteres digitados

AutoSuggestBox:Caixa de entrada com lista suspensa de autocompletar

NumberBox:Apenas entrada numérica, com limites de valor máximo/mínimo e suporte a casas decimais


    <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)

Posicione o cursor sobre o nome do evento e pressione F12 para gerar automaticamente a função de clique do botão

#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;

// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: 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");//Definir o texto do TextBox
    hstring inputText = myTextBox().Text(); //Ler o texto do TextBox
    OutputDebugStringW(inputText.c_str());
}
Code language: C++ (cpp)

Você pode usar myTextBox().Text para definir ou ler o conteúdo textual: se passar um parâmetro de wide string como L"welcome to foxdevelop.com", o texto será definido; se chamar sem argumentos (hstring inputText = myTextBox().Text();), recupera o texto atual.

Observação: mesmo após usar myTextBox().Text(L"welcome to foxdevelop.com"); para preencher um texto padrão, qualquer conteúdo digitado manualmente pelo usuário na interface poderá ser capturado no código backend ao clicar no botão.

Todos os outros controles de texto suportam leitura e gravação de valores por meio de sintaxe similar, não detalharemos cada um aqui.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *