dimohy
1
μ¬λ―Έλ μ€νμ νκ³ μλ νλ‘μ νΈλ₯Ό μκ° ν©λλ€.
MAUI νλ©΄μ razor ꡬ문 μ€νμΌλ‘ λ§λ€μ΄μ μ¬μ©ν μ μμ΅λλ€. μ§μ μ€νν΄λ³΄μ§λ μμμ§λ§ κ΄λ ¨ λ¬Έμλ μ 곡νκ³ κ°μΈμ μΌλ‘ razor ꡬ문 μ€νμΌμ λ μ’μν΄μ κ° λ³νμ λ°λ₯Έ νλ©΄ λ λλ§μ΄ XAML μ€νμΌμ λΉν΄ λμμ§ μλ€λ©΄ μ΄ν΄λ³Ό νμκ° μλ νλ‘μ νΈ μΈ κ² κ°μ΅λλ€.
4κ°μ μ’μμ
dimohy
2
μ΄ νλ‘μ νΈλ Microsoftμ μλμ μ€νμ© λͺ¨λ°μΌ Blazor λ°μΈλ©μ ν¬ν¬μ
λλ€.
1κ°μ μ’μμ
dimohy
3
λ¬Έμλ₯Ό μ΄μ©ν΄ νλ‘μ νΈ ν
νλ¦Ώμ μ€μΉν ν κΈ°λ³Έ νλ‘μ νΈλ₯Ό μμ±ν΄μ μ€νν΄λ³΄μμ΅λλ€.
razorλ‘ νμ΄μ§λ₯Ό ꡬμ±νλ κ²μ νμΈν μ μκ³
![image]()

λ€μμ²λΌ μ μ€νμ΄ λ©λλ€.
![image]()
razorμ μ₯μ μ xamlλ₯Ό μ¬μ©νμ λ λΆνμνκ² νλ©΄ κ΄λ ¨ μ½λλ₯Ό μ§μνκ² λλ λ°©ν₯μ±μμ
razorλ₯Ό μ¬μ©νλ©΄ μμ°μ€λ½κ² νλ©΄ ꡬμ±κ³Ό νλ©΄ κ΄λ ¨ μ½λλ₯Ό κ²°ν©ν μ μκ² λ©λλ€.
κ·Έλ¦¬κ³ λ°μΈλ©μ λμμ΄ μ’ λ μ§κ΄μ μ΄μ£ .
StateHasChanged()λ₯Ό κ·Έλλ‘ μΈ μ μλ κ²μΌλ‘ 보μ λ λλ§ νΈλ¦¬λ Blazorμ κ·Έκ²κ³Ό κ°μ΄ λμΌνκ² κ΅¬μ±νμ¬ λμν κ² κ°μ΅λλ€.
2κ°μ μ’μμ
dimohy
4
λͺκ°μ§ λμμ νμΈνλλ° κΈ°λ³Έ ν
νλ¦Ώ κΈ°λ°μΌλ‘λ μ λμμ νλ€μ.
@page "/main"
<ContentPage>
<ScrollView>
<VerticalStackLayout Spacing="25"
Padding="new(30,0)"
VerticalOptions="LayoutOptions.Center">
@if (count % 2 is 0)
{
<Image Source="dotNetBotSource"
HeightRequest="200"
HorizontalOptions="LayoutOptions.Center" Opacity="opacity" />
}
<Label Text="Hello, World!"
FontSize="32"
HorizontalOptions="LayoutOptions.Center" />
<Label Text="Welcome to .NET Multi-platform App UI"
FontSize="18"
HorizontalOptions="LayoutOptions.Center" />
<Button Text="@ButtonText"
HorizontalOptions="LayoutOptions.Center"
OnClick="OnCounterClicked" />
<Label HorizontalOptions="LayoutOptions.Center">== "@ButtonText" == </Label>
<Entry HorizontalOptions="LayoutOptions.Center" @bind-Text="inputText" />
<Label HorizontalOptions="LayoutOptions.Center">== "@inputText" == </Label>
</VerticalStackLayout>
</ScrollView>
</ContentPage>
@code {
ImageSource dotNetBotSource = ImageSource.FromFile("dotnet_bot.png");
int count = 0;
double opacity = 1.0d;
string inputText = "default text";
string ButtonText => count switch
{
0 => "Click me",
1 => $"Clicked 1 time",
_ => $"Clicked {count} times"
};
void OnCounterClicked()
{
count++;
opacity -= 0.1;
}
}

2κ°μ μ’μμ
μ λ μ‘°κΈ μ΄ν΄ λ΄€λλ° htmlμ μ΅μνμ§ μμΌμ λΆλ€μ
blazor hybrid λ³΄λ€ mobile blazor bindingμ΄ λμ κ² κ°μ΅λλ€.~~
3κ°μ μ’μμ
dimohy
6
λ€λ₯Έκ±΄ ν° νλ€μ΄ μλλ° Attached Property(μ°κ²°λ μμ±)κ° λ¬Έμ μ
λλ€. Blazorμ Razorμλ Attached Propertyκ° μκ±°λ μ. κ·Έλμ μ΄ λΌμ΄λΈλ¬λ¦¬μμλ Attached Propertyλ₯Ό Blazorμ λ§€κ°λ³μλ₯Ό νμνλ μ»΄ν¬λνΈ (Gridμ Grid μμ λ±)μμ μ²λ¦¬ν©λλ€. (μ¦, μ¬μ©μ νμ₯μ μλ©λλ€β¦ κ·Έλ μ£ ?)
μ‘°κΈ λ μ΄ν΄λ΄€λλ μ΄ λΌμ΄λΈλ¬λ¦¬λ Blazor λ λλ§ μμ€ν
μ κ·Έλ₯ μ¬μ©ν©λλ€. λ€λ§, λ λλ§μ μ¬μ©νλ μ»΄ν¬λνΈλ₯Ό MAUIλ₯Ό μ¬μ©νλ κ²μ΄μ£ . κ·Έλ¬λκΉ λ³νλ₯Ό κ°μ§ν΄μ λ λ νΈλ¦¬λ₯Ό κ°±μ νλ κΈ°μ‘΄ Blazor λ λλ§ μμ€ν
μ κ·Έλλ‘ μ¬μ©μ΄ λ©λλ€. λ§€λ ₯μ μ΄κ΅°μ +_+ λκ°μ κ°λ
μΌλ‘ MAUI λΏλ§ μλλΌ Avaloniaλ Unoλ Razor ꡬ문 μ€νμΌλ‘ νμ₯ν μ μμ κ² κ°μ΅λλ€. (λ€λ§, μ΄λ° μ€ν νλ‘μ νΈκ° μ±κ³΅νλ €λ©΄ razor μ€νμΌ μλΉμκ° λ§μμΌ νλ€λ κ²μ΄ λ¬Έμ κ΅°μ)
3κ°μ μ’μμ