WPF числовой вверх вниз пользовательский элемент управления - PullRequest
1 голос
/ 22 сентября 2010

Мне нужно было использовать числовой элемент управления вверх-вниз для моего приложения WPF. Я прочитал похожий вопрос, опубликованный здесь, и попытался использовать тот, который доступен здесь> http://bot.codeplex.com/.

Я добавил ссылки и сослался на них в моем окне XAML

xmlns:lib="clr-namespace:PixelLab.Wpf;assembly=PixelLab.Wpf"

и сделал это.

<lib:NumericUpDown Name="year"></lib:NumericUpDown>

и продолжайте получать ошибку: 'nud' - необъявленное пространство имен.

Я очень новичок в WPF, поэтому любая помощь будет принята.

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

У расширенного набора инструментов WPF есть один: NumericUpDown enter image description here

1 голос
/ 13 октября 2016

Ванильная реализация XAML (без дополнений или пакетов):

    <Window x:Class="Spinner.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Spinner"
        mc:Ignorable="d"
        ResizeMode="CanMinimize" SizeToContent="WidthAndHeight" Title="Scroll Spinner">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <!-- The button exists just to have something other than the spinner be the object of focus. -->
            <Button Content="Reset" TabIndex="0"/>
            <!-- The spinner is just a scroll bar overlaying a text box (same tab indices). -->
            <!-- Only the scroll bar is named (in order to get its value); the text box just relfects the scroll bar's value. -->
            <TextBox GotFocus="TextBox_GotFocus" Grid.Row="1" Height="{Binding ElementName=SpinnerScr, Path=ActualHeight}" HorizontalAlignment="Stretch" IsReadOnly="True" TabIndex="1" Text="{Binding ElementName=SpinnerScr, Path=Value, StringFormat={}{0:####0}}" TextAlignment="Center"/>
            <ScrollBar x:Name="SpinnerScr" Background="Transparent" Focusable="True" Grid.Row="1" Height="20" LostFocus="SpinnerScr_LostFocus" Margin="0,3" Maximum="999" Orientation="Horizontal" SmallChange="1" TabIndex="1" Visibility="Hidden"/>
            <x:Code>
                <![CDATA[
                void SpinnerScr_LostFocus(object sender, RoutedEventArgs e) {
                    SpinnerScr.Visibility = Visibility.Hidden;
                }
                void TextBox_GotFocus(object sender, RoutedEventArgs e) {
                    SpinnerScr.Visibility = Visibility.Visible;
                    SpinnerScr.Focus();
                }
            ]]>
            </x:Code>
        </Grid>
    </Window>

    using System.Windows;
    namespace Spinner {
        public partial class MainWindow : System.Windows.Window {
            public MainWindow() {
                InitializeComponent();
            }
        }
    }

enter image description here

Когда полоса прокрутки (или текстовое поле) имеет фокус,элементы прокрутки видны.При потере фокуса видно только текстовое поле.Доступ к любой полосе прокрутки возможен из любого выделенного кода.

...