2012-03-15 3 views
1

Expression Design에서 16x16 벡터를 가져 와서 블렌드로 가져 와서 컨트롤 템플릿에 사용했습니다. 다음은 XAML의 :WPF에서 런타임에 올바르게 경로를 맞 춥니 다.

enter image description here

: 혼합 특급 디자인은 실행시에, 깔끔하게 이미지를 보여줍니다 동안

<ControlTemplate x:Key="CircularButtonTemplate" TargetType="{x:Type Button}"> 
    <Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="Layer_1" Width="16" Height="16" Canvas.Left="0" Canvas.Top="0"> 
     <Ellipse x:Name="_circle" Width="15.0208" Height="15.0208" Canvas.Left="0.375033" Canvas.Top="0.479169" Stretch="Fill" Fill="#FF666666" /> 
     <Path x:Name="_darkShadow" Width="14.727" Height="14.686" Canvas.Left="0.232" Canvas.Top="0.357" StrokeThickness="3" StrokeLineJoin="Round" Stroke="Black" Data="M 2.02083,8.03473L 13.7501,8.03473M 7.84484,2.14584L 7.84484,13.8333"/> 
     <Path x:Name="_lightShadow" Width="14.727" Height="14.686" Canvas.Left="0.857" Canvas.Top="0.732" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FFABABAB" Data="M 2.02083,8.03473L 13.7501,8.03473M 7.84484,2.14584L 7.84484,13.8333"/> 
     <Path x:Name="_plus" Width="14.7292" Height="14.6875" Canvas.Left="0.520833" Canvas.Top="0.645836" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FFFFFFFF" Data="M 2.02083,8.03473L 13.7501,8.03473M 7.84484,2.14584L 7.84484,13.8333"/> 
    </Canvas> 

가 버튼에 적용 할 때, 중앙에 + 기호가 제대로 정렬되지 않습니다

어떻게 해결할 수 있습니까?

답변

2

캔버스에서 UseLayoutRounding = "True"로 설정해보십시오.

+0

그게 그랬어 :)이 문제를 해결하기 위해 내가 할 일이 적기 때문에 이것을 답으로 표시하려고한다. – Sameera

1

더 많은 정의 된 값을 제공하기 위해 생성 된 코드를 조정해야합니다. 이 시도.

<Canvas x:Name="Layer_1" Width="16" Height="16" VerticalAlignment="Center" HorizontalAlignment="Center"> 
     <Ellipse x:Name="_circle" Width="16" Height="16" Stretch="Fill" Fill="#FF666666" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
     <Path x:Name="_darkShadow" Width="16" Height="16" StrokeThickness="3" Stroke="Black" Data="M 2.02083,8.03473L 13.7501,8.03473M 7.84484,2.14584L 7.84484,13.8333" HorizontalAlignment="Center" VerticalAlignment="Center" UseLayoutRounding="False" Canvas.Left="-0.5" Canvas.Top="-0.5"/> 
     <Path x:Name="_lightShadow" Width="16" Height="16" StrokeThickness="3" Stroke="#FFABABAB" Data="M 2.02083,8.03473L 13.7501,8.03473M 7.84484,2.14584L 7.84484,13.8333" Canvas.Left="-0.5" Canvas.Top="-0.5" Visibility="Collapsed"/> 
     <Path x:Name="_plus" Width="14" Height="14" StrokeThickness="3" Stroke="#FFFFFFFF" Data="M 2.02083,8.03473L 13.7501,8.03473M 7.84484,2.14584L 7.84484,13.8333" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
    </Canvas> 
+0

확실하게 작동했습니다. – Sameera

+0

나는 더 빨리 해결할 수 있기 때문에 마이크의 대답을 표시했습니다. – Sameera

+0

헤이 굉장해, 나에게 뭔가를 보여 줬어, 마이크에게 축하해. –

관련 문제