9 বছরের প্রশ্নের উত্তর দেওয়ার জন্য ক্ষমা প্রার্থনা করুন।
আমি @ মাইকেল এর উত্তর অনুসরণ করেছি এবং এটি কার্যকর।
আমি এটি ব্যবহারকারীর নিয়ন্ত্রণ হিসাবে করি যেখানে আমি নিয়ন্ত্রণের উপাদানগুলির মতো টেনে আনতে পারি। শেভরন আইকন এবং বোতামের রিপল প্রভাব পেতে আমি নুগেট থেকে মেটেরিয়াল ডিজাইন থিম ব্যবহার করি।
পরিবর্তনের সাথে মিশেল থেকে চলমান নিউমারিকআপডাউন নীচের মত হবে: -
ব্যবহারকারীর নিয়ন্ত্রণের জন্য কোড: -
TemplateNumericUpDown.xaml
<UserControl x:Class="UserControlTemplate.TemplateNumericUpDown"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:UserControlTemplate"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d" MinHeight="48">
<Grid Background="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="60"/>
</Grid.ColumnDefinitions>
<TextBox x:Name="txtNum" x:FieldModifier="private" Text="{Binding Path=NumValue}" TextChanged="TxtNum_TextChanged" FontSize="36" BorderThickness="0" VerticalAlignment="Center" Padding="5,0"/>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="30*"/>
<RowDefinition Height="30*"/>
</Grid.RowDefinitions>
<Grid Background="#FF673AB7">
<Viewbox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="Auto" Width="Auto">
<materialDesign:PackIcon Kind="ChevronUp" Foreground="White" Height="32.941" Width="32"/>
</Viewbox>
<Button x:Name="cmdUp" x:FieldModifier="private" Click="CmdUp_Click" Height="Auto" BorderBrush="{x:Null}" Background="{x:Null}"/>
</Grid>
<Grid Grid.Row="1" Background="#FF673AB7">
<Viewbox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="Auto" Width="Auto">
<materialDesign:PackIcon Kind="ChevronDown" Foreground="White" Height="32.942" Width="32"/>
</Viewbox>
<Button x:Name="cmdDown" x:FieldModifier="private" Click="CmdDown_Click" Height="Auto" BorderBrush="{x:Null}" Background="{x:Null}"/>
</Grid>
</Grid>
</Grid>
</UserControl>
TemplateNumericUpDown.cs
using System.Windows;
using System.Windows.Controls;
namespace UserControlTemplate
{
/// <summary>
/// Interaction logic for TemplateNumericUpDown.xaml
/// </summary>
public partial class TemplateNumericUpDown : UserControl
{
private int _numValue = 0;
public TemplateNumericUpDown()
{
InitializeComponent();
txtNum.Text = _numValue.ToString();
}
public int NumValue
{
get { return _numValue; }
set
{
if (value >= 0)
{
_numValue = value;
txtNum.Text = value.ToString();
}
}
}
private void CmdUp_Click(object sender, RoutedEventArgs e)
{
NumValue++;
}
private void CmdDown_Click(object sender, RoutedEventArgs e)
{
NumValue--;
}
private void TxtNum_TextChanged(object sender, TextChangedEventArgs e)
{
if (txtNum == null)
{
return;
}
if (!int.TryParse(txtNum.Text, out _numValue))
txtNum.Text = _numValue.ToString();
}
}
}
মাইপেজডিজাইন.এক্সএমএল-তে, তৈরি এবং ড্রপ তৈরি করা ইউজারকন্ট্রোল থাকবে <UserControlTemplate:TemplateNumericUpDown HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"/>
টেমপ্লেট থেকে মান পেতে, আমি ব্যবহার
string Value1 = JournalNumStart.NumValue;
string Value2 = JournalNumEnd.NumValue;
আমি ফন্টসাইজ উপাদান থেকে ভিত্তি করে নিয়ন্ত্রণের উচ্চতা বাঁধাই এখনও ভাল দক্ষতায় নেই, তাই আমি আমার পৃষ্ঠা থেকে ফন্টসাইজটি ইউজারকন্ট্রোলটিতে ম্যানুয়ালি সেট করেছি।
** দ্রষ্টব্য: - আমি আমার প্রোগ্রামে সংরক্ষণাগারটিতে "সংরক্ষণাগার" নাম পরিবর্তন করেছি =)