Wchodzenie w pierwszy poważny projekt WPF. Wygląda na to, że brakuje wielu podstawowych elementów sterujących. W szczególności szukam kontrolki Numeric UpDown. Czy było jakieś wydawnictwo poza zespołem, które przegapiłem? Naprawdę nie mam ochoty pisać własnej kontroli.
Nie chcę używać WindowsFormHost i umieszczać na nim ctl WinForm. Chcę, aby był w pełni WPF bez żadnych starszych śmieci.
Dzięki
wpf
controls
numericupdown
updown
AngryHacker
źródło
źródło
Odpowiedzi:
Po prostu użyj
IntegerUpDown
kontrolki w zestawie narzędzi xtended wpf.Możesz go używać w następujący sposób:Dodaj do XAML następującą przestrzeń nazw:
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
W Twoim XAML, gdzie chcesz użyć kontrolki:
<xctk:IntegerUpDown Name="myUpDownControl" />
źródło
Zrobiłem własne;
plik xaml
i kod
źródło
To jest przykład mojego własnego UserControl z przechwytywaniem klawiszy w górę iw dół.
Kod XAML:
A kod:
źródło
źródło
Podane odpowiedzi są OK. Chciałem jednak, aby przyciski automatycznie się ukrywały, gdy mysz opuszcza sterowanie. Oto mój kod oparty na Vercin odpowiedzi :
Styl
Kod
źródło
Użyj
VerticalScrollBar
zTextBlock
formantem w WPF. W swoim kodzie z tyłu dodaj następujący kod:W konstruktorze zdefiniuj procedurę obsługi zdarzeń dla paska przewijania:
Następnie w module obsługi zdarzeń dodaj:
Oto oryginalny fragment mojego kodu ... wprowadź niezbędne zmiany .. :)
źródło
Możesz użyć kontrolki NumericUpDown dla WPF napisanej przeze mnie jako część biblioteki WPFControls .
źródło
Przeproś za dalsze odpowiadanie na pytania przez 9 lat.
Śledziłem odpowiedź @ Micheal i działa.
Robię to jako UserControl, gdzie mogę przeciągać i upuszczać jak elementy Controls. Używam motywu MaterialDesign firmy Nuget, aby uzyskać ikonę Chevron i efekt tętnienia przycisku.
Uruchomiony NumericUpDown z Micheal z modyfikacją będzie następujący: -
Kod do kontroli użytkownika: -
TemplateNumericUpDown.xaml
TemplateNumericUpDown.cs
Na MyPageDesign.xaml przeciągnij i upuść utworzony usercontrol będzie miał
<UserControlTemplate:TemplateNumericUpDown HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"/>
Aby uzyskać wartość z szablonu, używam
Nie mam jeszcze dobrych umiejętności w zakresie wiązania wysokości kontrolki opartej na elemencie FontSize, więc ustawiam ręcznie rozmiar czcionki z mojej strony w usercontrol.
** Uwaga: - Zmieniłem nazwę „Archieve” na Archive w moim programie =)
źródło
Mam rozwiązanie naiwne, ale przydatne. Oto kod:
źródło
Oto kolejna kontrolka open source, która ma wiele różnych metod wprowadzania (przeciąganie myszą, kółko myszy, klawisze kursora, edycja pola tekstowego), obsługuje wiele typów danych i przypadków użycia:
https://github.com/Dirkster99/NumericUpDownLib
źródło
Pragmatyczna próbka:
-Kliknij prawym przyciskiem myszy projekt (w obszarze Rozwiązanie), wybierz opcję „Zarządzaj pakietami nuget ...”
-W menu kliknij Przeglądaj Zakładka wyszukaj „wpftoolkit”, wybierz „
Extended.Wpf.Toolkit
”-Zainstaluj to!
-Kliknij prawym przyciskiem myszy w przyborniku kontroli użytkownika , wybierz opcję „Dodaj kartę” i nadaj jej nazwę „Zestaw narzędzi WPF”
-Kliknij prawym przyciskiem myszy nową kartę „Zestaw narzędzi WPF”, wybierz opcję „Wybierz elementy ...”
-W menu kliknij przycisk "Przeglądaj ...", poszukaj folderu nugets DLL, wybierz wszystko "
...\packages\Extended.Wpf.Toolkit.3.5.0\lib\net40\*.dll
"Ignoruj ostrzeżenia o niektórych bibliotekach DLL mogą nie zawierać elementów sterujących użytkownika!
Gotowy :)
źródło
Przejdź do menedżera NugetPackage swojego projektu -> Przeglądaj i wyszukaj mahApps.Metro -> zainstaluj pakiet w swoim projekcie. Zobaczysz Dodano odniesienie: MahApps.Metro. Następnie w kodzie XAML dodaj:
"xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
Gdzie chcesz użyć swojego obiektu dodaj:
Ciesz się pełną rozszerzalnością obiektu (powiązania, wyzwalacze itp.).
źródło