WPF Diagram Designer Part 1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(WPF Diagram Designer Part 1);
*目次 [#l515f891]
#contents
*参考情報 [#cd2710e2]
-[[WPF Diagram Designer: Part 1 - CodeProject:http://www....
*前準備 [#fa904c33]
-単にCanvasに青の円を表示する。ControlTemplateを使って抽...
#pre{{
<Canvas>
<Canvas.Resources>
<ControlTemplate x:Key="DesignerItemTemplate" Targe...
<ContentPresenter Content="{TemplateBinding Cont...
</ControlTemplate>
</Canvas.Resources>
<ContentControl Name="DesignerItem"
Width="100"
Height="100"
Canvas.Top="100"
Canvas.Left="100"
Template="{StaticResource DesignerItem...
<Ellipse Fill="Blue"/>
</ContentControl>
</Canvas>
}}
*動かす [#v22b9f0d]
-ドラッグで動かすためにMoveThumbというクラスを導入する。...
#pre{{
public MoveThumb()
{
DragDelta += new DragDeltaEventHandler(this.M...
}
private void MoveThumb_DragDelta(object sender, D...
{
//ドラッグ&ドロップされたときのイベントハンド...
Control item = this.DataContext as Control;
if (item != null)
{
//DataContextにセットされたアイテムの現在...
double left = Canvas.GetLeft(item);
double top = Canvas.GetTop(item);
Canvas.SetLeft(item, left + e.HorizontalC...
Canvas.SetTop(item, top + e.VerticalChang...
}
}
}}
-XAMLを変更。MoveThumbが青い円に重なって表示される。MoveT...
#pre{{
<Canvas>
<Canvas.Resources>
<ControlTemplate x:Key="DesignerItemTempl...
<Grid>
<s:MoveThumb DataContext="{Bindin...
<ContentPresenter Content="{Templ...
</Grid>
</ControlTemplate>
</Canvas.Resources>
<ContentControl Name="DesignerItem"
Width="100"
Height="100"
Canvas.Top="100"
Canvas.Left="100"
Template="{StaticResource Des...
>
<Ellipse Fill="Blue"/>
</ContentControl>
</Canvas>
}}
*リサイズする [#rabedcff]
-次のようなControlTemplateを作ればリサイズ用のデコレータ...
#pre{{
<Canvas>
<Canvas.Resources>
<ControlTemplate x:Key="MoveThumbTemplate...
<Rectangle Fill="Transparent"/>
</ControlTemplate>
<ControlTemplate x:Key="ResizeDecoratorTe...
<Grid>
<Thumb Height="3" Cursor="SizeNS"...
<Thumb Width="3" Cursor="SizeWE" ...
<Thumb Width="3" Cursor="SizeWE" ...
<Thumb Height="3" Cursor="SizeNS"...
<Thumb Width="7" Height="7" Curso...
<Thumb Width="7" Height="7" Curso...
<Thumb Width="7" Height="7" Curso...
<Thumb Width="7" Height="7" Curso...
</Grid>
</ControlTemplate>
<ControlTemplate x:Key="DesignerItemTempl...
<Grid>
<s:MoveThumb
Template="{StaticResource Mov...
DataContext="{Binding Relativ...
<Control Template="{StaticResourc...
<ContentPresenter Content="{Templ...
</Grid>
</ControlTemplate>
</Canvas.Resources>
<ContentControl Name="DesignerItem"
Width="100"
Height="100"
Canvas.Top="100"
Canvas.Left="100"
Template="{StaticResource Des...
>
<Ellipse Fill="Blue"/>
</ContentControl>
</Canvas>
}}
終了行:
&tag(WPF Diagram Designer Part 1);
*目次 [#l515f891]
#contents
*参考情報 [#cd2710e2]
-[[WPF Diagram Designer: Part 1 - CodeProject:http://www....
*前準備 [#fa904c33]
-単にCanvasに青の円を表示する。ControlTemplateを使って抽...
#pre{{
<Canvas>
<Canvas.Resources>
<ControlTemplate x:Key="DesignerItemTemplate" Targe...
<ContentPresenter Content="{TemplateBinding Cont...
</ControlTemplate>
</Canvas.Resources>
<ContentControl Name="DesignerItem"
Width="100"
Height="100"
Canvas.Top="100"
Canvas.Left="100"
Template="{StaticResource DesignerItem...
<Ellipse Fill="Blue"/>
</ContentControl>
</Canvas>
}}
*動かす [#v22b9f0d]
-ドラッグで動かすためにMoveThumbというクラスを導入する。...
#pre{{
public MoveThumb()
{
DragDelta += new DragDeltaEventHandler(this.M...
}
private void MoveThumb_DragDelta(object sender, D...
{
//ドラッグ&ドロップされたときのイベントハンド...
Control item = this.DataContext as Control;
if (item != null)
{
//DataContextにセットされたアイテムの現在...
double left = Canvas.GetLeft(item);
double top = Canvas.GetTop(item);
Canvas.SetLeft(item, left + e.HorizontalC...
Canvas.SetTop(item, top + e.VerticalChang...
}
}
}}
-XAMLを変更。MoveThumbが青い円に重なって表示される。MoveT...
#pre{{
<Canvas>
<Canvas.Resources>
<ControlTemplate x:Key="DesignerItemTempl...
<Grid>
<s:MoveThumb DataContext="{Bindin...
<ContentPresenter Content="{Templ...
</Grid>
</ControlTemplate>
</Canvas.Resources>
<ContentControl Name="DesignerItem"
Width="100"
Height="100"
Canvas.Top="100"
Canvas.Left="100"
Template="{StaticResource Des...
>
<Ellipse Fill="Blue"/>
</ContentControl>
</Canvas>
}}
*リサイズする [#rabedcff]
-次のようなControlTemplateを作ればリサイズ用のデコレータ...
#pre{{
<Canvas>
<Canvas.Resources>
<ControlTemplate x:Key="MoveThumbTemplate...
<Rectangle Fill="Transparent"/>
</ControlTemplate>
<ControlTemplate x:Key="ResizeDecoratorTe...
<Grid>
<Thumb Height="3" Cursor="SizeNS"...
<Thumb Width="3" Cursor="SizeWE" ...
<Thumb Width="3" Cursor="SizeWE" ...
<Thumb Height="3" Cursor="SizeNS"...
<Thumb Width="7" Height="7" Curso...
<Thumb Width="7" Height="7" Curso...
<Thumb Width="7" Height="7" Curso...
<Thumb Width="7" Height="7" Curso...
</Grid>
</ControlTemplate>
<ControlTemplate x:Key="DesignerItemTempl...
<Grid>
<s:MoveThumb
Template="{StaticResource Mov...
DataContext="{Binding Relativ...
<Control Template="{StaticResourc...
<ContentPresenter Content="{Templ...
</Grid>
</ControlTemplate>
</Canvas.Resources>
<ContentControl Name="DesignerItem"
Width="100"
Height="100"
Canvas.Top="100"
Canvas.Left="100"
Template="{StaticResource Des...
>
<Ellipse Fill="Blue"/>
</ContentControl>
</Canvas>
}}
ページ名: