나는 게임 데스크를 만들고 있습니다. 필자는 부착 된 속성으로 필드 크기 (한 필드는 정사각형 임)를 지정하고 2x2 행렬을 그리는 ViewPort의이 데이터 설정 값 (타일 모드는 나머지 게임 데스크를 수행함)을 지정하려고했습니다.변환기를 사용하여 TemplateBinding - 무엇이 잘못 되었습니까?
바인딩이 작동하지 않아서 무엇이 잘못 되었습니까?
내가하고 싶은 행동 XAML에서테스트 라인 :
<DrawingBrush Viewport="0,0,100,100" ViewportUnits="Absolute" TileMode="None">
게임 데스크가 DrawingPaint의이 샘플을 기반으로합니다 http://msdn.microsoft.com/en-us/library/aa970904.aspx (이미지가 여기에있다)
XAML :
<Window x:Class="Sokoban.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Sokoban"
Title="Window1" Height="559" Width="419">
<Window.Resources>
<local:FieldSizeToRectConverter x:Key="fieldSizeConverter" />
<Style x:Key="GameDesk" TargetType="{x:Type Rectangle}">
<Setter Property="local:GameDeskProperties.FieldSize" Value="50" />
<Setter Property="Fill">
<Setter.Value>
<!--<DrawingBrush Viewport="0,0,100,100" ViewportUnits="Absolute" TileMode="None">-->
<DrawingBrush Viewport="{TemplateBinding local:GameDeskProperties.FieldSize, Converter={StaticResource fieldSizeConverter}}" ViewportUnits="Absolute" TileMode="None">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="CornflowerBlue">
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0,100,100" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="Azure">
<GeometryDrawing.Geometry>
<GeometryGroup>
<RectangleGeometry Rect="0,0,50,50" />
<RectangleGeometry Rect="50,50,50,50" />
</GeometryGroup>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel>
<Rectangle Style="{StaticResource GameDesk}" Width="300" Height="150" />
</StackPanel>
</Window>
변환기 및 재산 정의 :
,738,867,321 0
Visual Studio의 출력 창에서이 오류를 발견했습니다. System.Windows.Data 오류 : 2 : 대상 요소에 대해 FrameworkElement 또는 FrameworkContentElement를 찾을 수 없습니다. BindingExpression : Path = (0); DataItem = null; 대상 요소는 'DrawingBrush'(HashCode = 35191196)입니다. 대상 속성 'Viewport'(유형 'Rect') –
죄송합니다. 설정 한 속성을 자세히 보지 않았습니다. 실제로 작동하도록 답변을 업데이트했습니다. –
감사합니다. 이전 예제에서 알았습니다. –