Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
На заметку! Более подробные сведения о классе
UserControl
Подобно окну типы
UserControl
Label
Grid
<UserControl x:Class="CustomDepProp.ShowNumberControl"
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:local="clr-namespace: CustomDependencyProperty"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Label x:Name="numberDisplay" Height="50" Width="200"
Background="LightBlue"/>
</Grid>
</UserControl>
В файле кода для данного элемента создайте обычное свойство .NET Core, которое упаковывает поле типа
int
Content
Label
public partial class ShowNumberControl : UserControl
{
public ShowNumberControl()
{
InitializeComponent();
}
<b> // Обычное свойство .NET Core.</b>
private int _currNumber = 0;
public int CurrentNumber
{
get => _currNumber;
set
{
_currNumber = value;
numberDisplay.Content = CurrentNumber.ToString();
}
}
}
Обновите определение XAML в
MainWindow.xml
StackPanel
<Window x:Class="CustomDepPropApp.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"
<b> xmlns:myCtrls="clr-namespace: CustomDependencyProperty"</b>
xmlns:local="clr-namespace: CustomDependencyProperty"
mc:Ignorable="d"
<b> Title="Simple Dependency Property App" Height="450" Width="450"</b>
WindowStartupLocation="CenterScreen">
<b> <StackPanel></b>
<b> <myCtrls:ShowNumberControl</b>
<b> HorizontalAlignment="Left" x:Name="myShowNumberCtrl" </b>
<b> CurrentNumber="100"/></b>
<b> </StackPanel></b>
</Window>
Похоже, что визуальный конструктор Visual Studio корректно отображает значение, установленное в свойстве
CurrentNumber

Однако что, если к свойству
CurrentNumber
myCtrls:ShowNumberControl
<myCtrls:ShowNumberControl x:Name="myShowNumberCtrl" CurrentNumber="100">
<myCtrls:ShowNumberControl.Triggers>
<EventTrigger RoutedEvent = "myCtrls:ShowNumberControl.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard TargetProperty = "CurrentNumber">
<Int32Animation From = "100" To = "200" Duration = "0:0:10"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</myCtrls:ShowNumberControl.Triggers>
</myCtrls:ShowNumberControl>