Я описую шаблон для кнопки, хочу чтобы цвет кнопки при наведении и в нормальном состоянии задавался пользователем. Но при установке тригерров мне выдает ошибку "The member "RelativeSource" is not recognized or is not accessible". Как исправить?
<Window x:Class="ExpenseTracker.Views.MainWindowView"
x:ClassModifier="internal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:ExpenseTracker.Controls"
WindowStartupLocation="CenterScreen"
Title="Expense Traker"
Height="500"
Width="500">
<Window.Resources>
<SolidColorBrush x:Key="NormalBackground" Color="#FF5FB860"/>
<SolidColorBrush x:Key="MouseOverBackground" Color="#FF509A50"/>
<ControlTemplate x:Key="buttonTemplate" TargetType="{x:Type controls:RoundButton}">
<Border Background="{TemplateBinding Background}"
Height="30"
x:Name="border"
BorderThickness="2">
<ContentPresenter Content="{TemplateBinding Content}"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{TemplateBinding MouseOverBackground, RelativeSource={RelativeSource TemplatedParent}}" TargetName="border"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>
<controls:RoundButton Template="{StaticResource buttonTemplate}"
Background="{StaticResource NormalBackground}"
MouseOverBackground="{StaticResource MouseOverBackground}">
</controls:RoundButton>
</Window>
И сам класс:
internal sealed class RoundButton :Button
{
public static readonly DependencyProperty MouseOverBackgroundProperty = DependencyProperty.Register(
"MouseOverBackground",
typeof(SolidColorBrush),
typeof(RoundButton),
new PropertyMetadata(null));
public SolidColorBrush MouseOverBackground
{
get { return (SolidColorBrush)GetValue(MouseOverBackgroundProperty); }
set { SetValue(MouseOverBackgroundProperty, value); }
}
}
В классе TemplateBindingExtension
отсутствует свойство RelativeSource
. Используйте обычный Binding
(TemplateBinding
нельзя использовать в триггере):
<Setter Property="Background"
Value="{Binding MouseOverBackground,
RelativeSource={RelativeSource TemplatedParent}}"
TargetName="border"/>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
задание сделать библиотеку(реальная с книгами и газетами) с использованием трехслойной архитектурой, где UI - asp net mvcПервым заданием делал...
У меня есть textbox в который из бд выводится номер телефона:
На вьюхе есть Html хелпер который генерирует следующую разметку: