Megosztás a következőn keresztül:


Szám mező

Számok megjelenítésére és szerkesztésére használható vezérlőt jelöl. Ez támogatja az alapegyenletek, például a szorzás, az osztás, az összeadás és a kivonás beágyazott számításainak érvényesítését, lépésenkénti növelését és számítását.

Egy fókuszban lévő beviteli mező, amely a 12-es számot jeleníti meg.

Ez a megfelelő vezérlő?

A Számmező vezérlőelem használatával matematikai bemeneteket rögzíthet és jeleníthet meg. Ha olyan szerkeszthető szövegdobozra van szüksége, amely több értéket fogad el, használja a Szövegdoboz vezérlőelemet. Ha olyan szerkeszthető szövegdobozra van szüksége, amely jelszavakat vagy más bizalmas bemeneteket fogad el, tekintse meg PasswordBoxcímű témakört. Ha egy szövegmezőre van szüksége a keresési kifejezések megadásához, tekintse meg AutoSuggestBoxcímű témakört. Ha formázott szöveget kell beírnia vagy szerkesztenie, olvassa el RichEditBoxcímű témakört.

Recommendations

  • Text és Value megkönnyíti a Számmezők értékének sztringként vagy kettősként való rögzítését anélkül, hogy az értéket típusok között kellene konvertálnia. A NumberBox értékének programozott módosításakor ajánlott ezt a Value tulajdonságon keresztül végrehajtani. Value felülírja Text a kezdeti beállítás során. A kezdeti beállítás után az egyik módosításait a rendszer propagálja a másikra, de a programozott módosítások következetes végrehajtása a Value használatával segít elkerülni azokat a fogalmi félreértéseket, amelyek azt feltételezik, hogy a NumberBox nem numerikus karaktereket is elfogadna a Textrévén.
  • A Header vagy PlaceholderText használatával tájékoztassa a felhasználókat, hogy a NumberBox csak numerikus karaktereket fogad bemenetként. A számok betűs ábrázolása, például az "egy", nem fog elfogadott értéket képviselni.

NumberBox létrehozása

WinUI 3 Katalógus ikon A WinUI 3 Katalógus alkalmazás interaktív példákat tartalmaz a WinUI vezérlőire és funkcióira. Kérje le az alkalmazást a Microsoft Áruházból vagy keresse meg a forráskódot a GitHub webhelyen.

Íme egy alapszintű NumberBox XAML-értéke, amely az alapértelmezett megjelenést mutatja be. A x:Bind használatával győződjön meg arról, hogy a felhasználó számára megjelenített adatok szinkronban maradnak az alkalmazásban tárolt adatokkal.

<NumberBox Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}" />

Egy fókuszban lévő beviteli mező, amely a 12-es számot jeleníti meg.

Számozási mező címkézése

Használjon Header vagy PlaceholderText, ha a NumberBox célja nem egyértelmű. A Header látható, függetlenül attól, hogy a Számmező rendelkezik-e értékkel.

<NumberBox Header="Enter a number:"
    Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}" />

Egy számmező fölött a

A PlaceholderText a számmezőben jelenik meg, és csak akkor tűnik fel, ha a ValueNaN-re van állítva, vagy ha a felhasználó törli a bemenetet.

<NumberBox PlaceholderText="1+2^2"
    Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}" />

Egy Számmező, amely helyőrző szöveget tartalmaz, és a

Számítási támogatás engedélyezése

A AcceptsExpression tulajdonság igaz értékre állítása lehetővé teszi, hogy a NumberBox szabványos műveleti sorrendben értékelje ki az olyan alapszintű beágyazott kifejezéseket, mint a szorzás, az osztás, az összeadás és a kivonás. A kiértékelés fókuszvesztéskor vagy az "Enter" billentyű lenyomásakor aktiválódik. A kifejezés kiértékelése után a kifejezés eredeti formája nem marad meg.

<NumberBox Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}"
    AcceptsExpression="True" />

Növekvő és csökkenő lépések

A SmallChange tulajdonság használatával konfigurálhatja, hogy a Számmezőn belüli érték mennyiben változik, ha a NumberBox a fókuszban van, és a felhasználó:

  • tekercsek
  • lenyomja a felfelé mutató nyílbillentyűt
  • nyomja le a lefelé mutató nyílbillentyűt

A LargeChange tulajdonság használatával konfigurálhatja, hogy a Számmezőn belüli érték mennyiben változik, amikor a NumberBox a fókuszban van, és a felhasználó lenyomja a PageUp vagy a PageDown billentyűt.

A SpinButtonPlacementMode tulajdonság használatával engedélyezheti azokat a gombokat, amelyekre kattintva növelhető vagy csökkenthető a Számmező értéke a SmallChange tulajdonság által megadott összeggel. Ezek a gombok le lesznek tiltva, ha egy maximális vagy minimális értéket egy másik lépéssel lépne túl.

Állítsa a SpinButtonPlacementModeInline értékre, hogy a gombok megjelenjenek a vezérlő mellett.

<NumberBox Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}"
    SmallChange="10"
    LargeChange="100"
    SpinButtonPlacementMode="Inline" />

Egy Számmező, mellette egy lefelé mutató nyíl és egy felfelé mutató gomb.

Állítsa be a SpinButtonPlacementMode-t a Compact-re, hogy a gombok csak akkor jelenjenek meg úszó panelként, amikor a NumberBox van a fókuszban.

<NumberBox Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}"
    SmallChange="10"
    LargeChange="100"
    SpinButtonPlacementMode="Compact" />

Egy számmező, benne egy kis ikonnal, amelyen egy felfelé mutató nyíl és egy lefelé mutató nyíl látható.

A NumberBox egy lefelé mutató nyíllal és felfelé mutató gombbal, amely egy emelt szintű réteg oldalán lebeg.

Bemeneti ellenőrzés engedélyezése

Ha a ValidationModeInvalidInputOverwritten értékre állítja, a NumberBox felülírja az érvénytelen, nem numerikus vagy jogilag képletes bemenetet az utolsó érvényes értékkel, amikor a kiértékelés fókuszvesztéskor vagy az "Enter" billentyű lenyomásával aktiválódik.

<NumberBox Header="Quantity"
    Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}"
    ValidationMode="InvalidInputOverwritten" />

A ValidationModeDisabled beállítása lehetővé teszi az egyéni beviteli ellenőrzés konfigurálását.

A tizedespontok és a vesszők illetően a felhasználó által használt formázást a NumberBoxhoz konfigurált formázás váltja fel. Nem fog bekövetkezni bemeneti érvényesítési hiba.

Formázási bemenet

Számformázási a NumberBox értékének formázására használható egy formázási osztály egy példányának konfigurálásával és a NumberFormatter tulajdonsághoz való hozzárendelésével. A decimális, a pénznem, a százalék és a jelentős számjegyek néhány a rendelkezésre álló számformázási osztályok közül. Vegye figyelembe, hogy a kerekítést számformázási tulajdonságok is definiálják.

Íme egy példa arra, hogy a DecimalFormatter használatával formázza a NumberBox értékét úgy, hogy egy egész szám, két tört számjegy legyen, és kerekítsen fel a legközelebbi 0,25-ös értékre:

<NumberBox  x:Name="FormattedNumberBox"
    Value="{x:Bind Path=ViewModel.NumberBoxValue, Mode=TwoWay}" />
private void SetNumberBoxNumberFormatter()
{
    IncrementNumberRounder rounder = new IncrementNumberRounder();
    rounder.Increment = 0.25;
    rounder.RoundingAlgorithm = RoundingAlgorithm.RoundUp;

    DecimalFormatter formatter = new DecimalFormatter();
    formatter.IntegerDigits = 1;
    formatter.FractionDigits = 2;
    formatter.NumberRounder = rounder;
    FormattedNumberBox.NumberFormatter = formatter;
}

0,00 értéket megjelenítő Számmező.

A tizedespontok és a vesszők illetően a felhasználó által használt formázást a NumberBoxhoz konfigurált formázás váltja fel. Nem fog bekövetkezni bemeneti érvényesítési hiba.

Megjegyzések

Bemeneti hatókör

Number a bemeneti hatókörhasználatához lesz alkalmazva. Ez a bemeneti hatókör a 0–9. számjegyek használatának céljára szolgál. Ez felülírható, de az alternatív InputScope-típusok nem támogatottak explicit módon.

Nem szám

Amikor egy Számmező tartalmát törlik, a Value a NaN értékre lesz állítva, hogy jelezze, nincs számérték jelen.

Kifejezés kiértékelése

A NumberBox a kifejezések kiértékeléséhez az infix jelölést használja. Az elsőbbségi sorrendben az engedélyezett operátorok a következők:

  • ^
  • */
  • +-

Vegye figyelembe, hogy zárójelek használhatók az elsőbbségi szabályok felülbírálásához.