Files
docs-desktop/dotnet-desktop-guide/net/wpf/properties/snippets/attached-properties-overview/csharp/MainWindow.xaml.cs
T
2021-10-22 10:23:20 -07:00

58 lines
1.7 KiB
C#

using System.Windows;
using System.Windows.Controls;
namespace CodeSampleCsharp
{
/// <summary>
/// Interaction logic for MainWindow.xaml.
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SetAttachedPropertyInCode();
}
public static void SetAttachedPropertyInCode()
{
//<SetAttachedPropertyInCode>
DockPanel myDockPanel = new();
TextBox myTextBox = new();
myTextBox.Text = "Enter text";
// Add child element to the DockPanel.
myDockPanel.Children.Add(myTextBox);
// Set the attached property value.
DockPanel.SetDock(myTextBox, Dock.Top);
//</SetAttachedPropertyInCode>
}
}
//<RegisterAttachedProperty>
public class Aquarium : DependencyObject
{
// Register an attached dependency property with the specified
// property name, property type, owner type, and property metadata.
public static readonly DependencyProperty HasFishProperty =
DependencyProperty.RegisterAttached(
"HasFish",
typeof(bool),
typeof(Aquarium),
new FrameworkPropertyMetadata(defaultValue: false,
flags: FrameworkPropertyMetadataOptions.AffectsRender)
);
// Declare a get accessor method.
public static bool GetHasFish(UIElement target) =>
(bool)target.GetValue(HasFishProperty);
// Declare a set accessor method.
public static void SetHasFish(UIElement target, bool value) =>
target.SetValue(HasFishProperty, value);
}
//</RegisterAttachedProperty>
}