Я пытаюсь определить, нужны ли приложенные поведении в средства управления зданием для форм в нашем приложении.Я создал прикрепленное свойство, теперь как его использовать?
Таким образом, я не только хочу знать, как создать Attached Поведения, но хотят видеть реальные случаи, в которых они используются для решения проблем. Я использовал this MSDN article, чтобы создать UserControl с прикрепленным свойством таким образом, который, на мой взгляд, был бы полезен, а именно, панель стека, в которой некоторые дочерние элементы либо подсвечены, либо не выделены.
Этот пример работает нормально, но где я поставил логику выделить или не выделить (например, изменить цвет фона) в ребенка элементов?
XAML:
<Window x:Class="TestAttachedProperties2343.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestAttachedProperties2343"
Title="Window1" Height="300" Width="300">
<Grid>
<local:ExtendedStackPanel>
<TextBlock local:ExtendedStackPanel.IsHighlighted="True" Text="text1"/>
<TextBox local:ExtendedStackPanel.IsHighlighted="False" Text="text2"/>
<TextBox local:ExtendedStackPanel.IsHighlighted="True" Text="text3"/>
</local:ExtendedStackPanel>
</Grid>
</Window>
Код За:
using System.Windows;
using System.Windows.Controls;
using System.ComponentModel;
using System;
namespace TestAttachedProperties2343
{
public partial class ExtendedStackPanel : StackPanel
{
public static readonly DependencyProperty IsHighlightedProperty = DependencyProperty.RegisterAttached(
"IsHighlighted",
typeof(Boolean),
typeof(ExtendedStackPanel),
new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
public static void SetIsHighlighted(UIElement element, Boolean value)
{
element.SetValue(IsHighlightedProperty, value);
}
public static Boolean GetIsHighlighted(UIElement element)
{
return (Boolean)element.GetValue(IsHighlightedProperty);
}
public ExtendedStackPanel()
{
InitializeComponent();
}
}
}
Что мне нужно для ссылки на использование класса «Поведение», я нахожу только System.ComponentModel.CategoryAttribute.Behavior (http://msdn.microsoft.com/en-us/library/system. componentmodel.categoryattribute.behavior.aspx) в System.dll, на который я ссылаюсь, говорит, что тип «Поведение» не найден. –
Вам необходимо обратиться к сборке System.Windows.Interactivity. Он установлен как часть Expression Blend 3. – Konamiman
Это хорошо работает в WPF, и я технически понимаю, как это работает. Я думаю, что мы могли бы использовать это в наших формах, возможно, вместо сообщения определить ItemType (Customer или Employee) и, следовательно, иметь разные проверки, сообщения и т. Д. Как вы используете его в реальных приложениях? –