2010-09-22 3 views
1

J'ai eu besoin d'utiliser un contrôle numérique haut-bas pour mon application WPF. J'ai lu une question similaire posté ici et essayé en utilisant celui disponible ici>http://bot.codeplex.com/.Contrôle personnalisé WPF numérique vers le haut

J'ai ajouté les références et référencées dans ma fenêtre XAML

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

et a fait.

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

et continuer à recevoir l'erreur: 'nud' est une nom de domaine non déclaré.

Je suis très nouveau à WPF donc toute aide serait appréciée.

+0

Si vous obtenez cette erreur alors quelque part dans votre code il y a un 'nud' référencé. Trouvez-le et supprimez-le ou changez-le en 'lib'. –

+0

Recherche de l'ensemble du projet for'nud 'mais n'a trouvé aucune correspondance. –

+2

Ajoutez le projet (code source) dans votre application (au lieu de le référencer), puis essayez de déboguer les contrôles Initializer. Vous pouvez obtenir une erreur plus spécifique de cette façon. – akjoshi

Répondre

1

Vanilla XAML (aucun ajout ou paquets) mise en œuvre:

<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

Lorsque la barre de défilement (ou zone de texte) a focus, les éléments de défilement sont visibles. En cas de perte de focus, seule la zone de texte est visible. Seule la barre de défilement peut être accessible dans n'importe quel code-behind.

Questions connexes