2010-12-20 15 views
1

스타일을 사용하여 UserControl의 속성을 설정하는 방법은 무엇입니까?WPF - UserControl에 스타일을 할당 할 수 없습니다.

<UserControl x:Class="MyProject.RedSquare" 
    ... 
    Height="10" Width="10" Background="Red"> 
    <Grid> 

    </Grid> 
</UserControl> 

지금 수동으로이 컨트롤의 너비/높이를 지정할 수 있습니다

내가 같은 간단한 UserControl을 정의 (I는 관련 질문을 읽을 수 있지만 그들 중 누구도 내 문제를 해결하지 않음).

하지만 스타일을 사용하여 속성을 할당 할 수 없습니다.

이 작동하지 않습니다

<Window.Resources> 
    <Style x:Key="red" TargetType="{x:Type local:RedSquare}"> 
     <Setter Property="Width" Value="200" /> 
    </Style> 
</Window.Resources> 

... 

<local:RedSquare Style="{StaticResource red}" /> 

이상한 행동 : 나는 스타일로 control's 마진을 수정할 수 있지만 다른 모든 속성이 작동하지 않습니다?

아이디어가 있으십니까?

Height="10" Width="10" 

지역의 부동산 값이 스타일 세터에 값 높은 우선 순위를 가지고 :

답변

5

사용자 컨트롤은 하드 코딩 된 너비와 높이를 가지고있다. 디자인 타임 값으로 너비/높이를 교체하십시오 :

xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
d:DesignHeight="10" d:DesignWidth="10" 

감사합니다, 콜린 E. 그것을 해결

+0

을! 고맙습니다! – Max

+0

다른 방법으로는 하드 코딩 된 값을 그대로 둘 수 있습니다 – Max

관련 문제