2014-06-13 1 views
2

Microsoft.Phone.Controls.Maps.Map 맵 컨트롤 (Windows 7의 이전 Bing 맵은 새로운 기능이 필요하지 않음)입니다.XAML 선 PhoneAccentColor의 선이 처리되지 않은 예외를 발생시킵니다.

지도에 Canvas 컨트롤을 프로그래밍 방식으로 추가합니다.

at MS.Internal.XcpImports.CheckHResult(UInt32 hr) 
    at MS.Internal.XcpImports.UIElement_Measure(UIElement element, Size availableSize) 
    at System.Windows.UIElement.Measure(Size availableSize) 
    at Microsoft.Phone.Controls.Maps.MapLayer.MeasureOverride(Size availableSize) 
    at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Double inWidth, Double inHeight, Double& outWidth, Double& outHeight) 

어떤 아이디어

어떤 문제 : 나는 PhoneAccentColor에 스트로크를 변경하는 경우

<Line ... Stroke="{StaticResource PhoneForegroundBrush}" /> 

는하지만, 처리되지 않은 예외가 처리되지 않은 예외의 스택 추적을 여기

<Line ... Stroke="{StaticResource PhoneAccentColor}" /> 

발생 때 모든 잘 작동합니다 아마도?

<UserControl.Resources> 
    <ResourceDictionary> 

     <DataTemplate x:Key="MyTemplate"> 
      <Canvas Height="300" Width="300" HorizontalAlignment="Center" VerticalAlignment="Center"> 
       <Line X1="150" X2="150" Y1="0" Y2="130" Stroke="{StaticResource PhoneAccentColor}" Margin="0"/> 
      </Canvas> 
     </DataTemplate> 

    </ResourceDictionary> 
</UserControl.Resources> 

그것을 사용하여 C 번호 :

ContentControl content = new ContentControl(); 
content.ContentTemplate = (DataTemplate)Resources["MyTemplate"]; 
Viewbox viewbox = new Viewbox(); 
viewbox.Width = 300; 
viewbox.Height = 300; 
viewbox.Child = content; 
Map.Children.Add(viewbox); 

답변

2

당신은 PhoneAccentBrush 대신 PhoneAccentColor을 사용해야 경우

내 코드 관련입니다. PhoneAccentColor는 typeof Color이기 때문에 그러나 Stroke need type은 Brush입니다.

<Line ... Stroke="{StaticResource PhoneAccentBrush}" /> 

또는 SolidColorBrush로 defind 뇌졸중 및 설정 PhoneAccentColor를 사용하여 색상 :

<Line> 
    <Line.Stroke> 
     <SolidColorBrush Color="{StaticResource PhoneAccentColor}"/> 
    </Line.Stroke> 
</Line> 
관련 문제