이는 generic.axml 코드 :기본 창에서 사용자 정의 컨트롤의 속성을 설정하는 방법은 무엇입니까?
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Calendario"
xmlns:MyNamespace="clr-namespace:Calendario;assembly=Calendario"
xmlns:Converters="clr-namespace:Calendario.Converters">
<Converters:DateConverter x:Key="DateConverter"></Converters:DateConverter>
<Converters:DayBorderColorConverter x:Key="DayBorderColorConverter"></Converters:DayBorderColorConverter>
<Style TargetType="{x:Type local:CalendarioPersonalizado}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CalendarioPersonalizado}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<DockPanel>
<TextBlock Text="{Binding Date}" />
<Grid Height="30" DockPanel.Dock="Top">
</Grid>
<ItemsControl ItemsSource="{Binding Days}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="{Binding ColorRecuadroExterno, Mode=TwoWay}" BorderThickness="1" Padding="0">
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DockPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
그리고 나는 dpendency 속성 내 Calendario.cs이 : 내가 사용하는 내 메인 창에서
public static readonly DependencyProperty ColorRecuadroExternoProperty = DependencyProperty.Register("ColorRecuadroExterno", typeof(Brush), typeof(CalendarioPersonalizado));
public Brush ColorRecuadroExterno
{
get { return (Brush)GetValue(ColorRecuadroExternoProperty); }
set { SetValue(ColorRecuadroExternoProperty, value); }
}
그리고 이상을 컨트롤 :
<local:CalendarioPersonalizado x:Name="cCalendario" ColorRecuadroExterno="Green"/>
문제는 기본 창에서 설정하려고했던 것처럼 캘린더의 날짜 테두리가 초록색으로 설정되어 있지 않다는 것입니다.
또한 코드에서 나는 이것을 시도 behid :cCalendario.ColorRecuadroExterno = System.Windows.Media.Brushes.Green;
하지만 색상이 설정되어 있지 않습니다.
내가하고 싶은 것은 내 응용 프로그램에서 내 사용자 지정 cotrol의 테두리 색을 설정하는 것입니다.
감사합니다.
'BorderBrush = "{Binding ColorRecuadroExterno, Mode = TwoWay}"'올바른 바인딩 경로가 있는지 의심 스럽습니다. 바인딩 오류에 대해 VS의 출력 창을 확인하십시오. 당신이 그 경로에'local : CalendarioPersonalizado' 타입의 조상을 가진 RelativeSource를 추가 할 필요가 있다고 생각합니다. – ASh