WPFで可動/サイズ変更可能な部品を含む図を実装しようとしています。 ItemsPanelを "DynamicCanvas"に設定してItemsControlを使用したいと思います。 今、DynamicCanvasについて知っておくべきことは、通常のキャンバスのように機能することです.1つの例外を除いて、付属のプロパティを使用してX、Y属性に関する情報をその子に格納します。ItemsControlおよび添付プロパティの制御
マイコード:
<ItemsControl IsTabStop="False" ItemsSource="{Binding ElementName=comboBox1,Path=SelectedItem.Source.Table}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<s:TableControl Table="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<!--<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">-->
<c:DynamicCanvas SizeHeightToContent="True" SizeWidthToContent="True" ClipToBounds="True" SnapsToDevicePixels="True" PreviewMouseDown="Canvas_MouseDown" IsHitTestVisible="True" Background="Gray" >
</c:DynamicCanvas>
<!--</ScrollViewer>-->
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
DynamicCanvasに表示されているコントロールは(唯一の最も重要な部分の下)私のカスタムタイプのものである:
<ContentControl x:Class="SubiektCommerceSynchro.ViewModel.TableControl"
c:DynamicCanvas.Left="{Binding X,Mode=TwoWay}"
c:DynamicCanvas.Top="{Binding Y,Mode=TwoWay}"
Width="450" Height="300"
></ContentControl>
今問題と質問:
ここで動作しない部分は、添付プロパティc:DynamicCanvas.Left(Top)です。 は段階的にそれを置くことができます:
1)DynamicCanvasは、その直接の子は、Cを持っていることを期待:DynamicCanvas.LeftとC:DynamicCanvas.Topは
2を定義する)ItemsPanelはDynamicCanvasにTableControlsを置くことはいくつかの種類でそれらをラップするとき(0,0)に配置されているとして処理され、それらを効果的に移動不能にレンダリングします。
この問題を解決するにはどうすればよいですか?
私は理由を知らないが、私はあなたの答えを見ていない。私はこれを自分で見つけて、それについてのコメントを下に書きました。それにもかかわらず、ありがとう。 – kubal5003