ワークフロー デザイナーを WPF アプリケーションでホストしようとしています。WorkflowView コントロールは、WindowsFormsHost コントロールの下でホストされます。別の WindowsFormsHost でホストされている PropertyGrid に正常にリンクされているデザイナーにワークフローを読み込むことができました。
WorkflowView workflowView = rootDesigner.GetView(ViewTechnology.Default) as WorkflowView;
window.WorkflowViewHost.Child = workflowView;
再ホスト コードの大部分はhttp://msdn.microsoft.com/en-us/library/aa480213.aspxと同じです。
ToolboxItems のリストにバインドされた ListBox WPF コントロールを使用して、カスタム ツールボックスを作成しました。
<ListBox Grid.Row="1" Margin="0 0 0 4" BorderThickness="1" BorderBrush="DarkGray" ItemsSource="{Binding Path=ToolboxItems}" PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown" AllowDrop="True">
<ListBox.Resources>
<vw:BitmapSourceTypeConverter x:Key="BitmapSourceConverter" />
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type dd:ToolboxItem}">
<StackPanel Orientation="Horizontal" Margin="3">
<Image Source="{Binding Path=Bitmap, Converter={StaticResource BitmapSourceConverter}}" Height="16" Width="16" Margin="0 0 3 0" />
<TextBlock Text="{Binding Path=DisplayName}" FontSize="14" Height="16" VerticalAlignment="Center" />
<StackPanel.ToolTip>
<TextBlock Text="{Binding Path=Description}" />
</StackPanel.ToolTip>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ListBox_PreviewMouseLeftButtonDown ハンドラーで:
private void ListBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
ListBox parent = (ListBox)sender;
UIElement dataContainer;
//get the ToolboxItem for the selected item
object data = GetObjectDataFromPoint(parent, e.GetPosition(parent), out dataContainer);
//if the data is not null then start the drag drop operation
if (data != null)
{
DataObject dataObject = new DataObject();
dataObject.SetData(typeof(ToolboxItem), data);
DragDrop.DoDragDrop(parent, dataObject, DragDropEffects.Move | DragDropEffects.Copy);
}
}
そのセットアップでは、カスタム ツールボックスからデザイナーに項目をドラッグできません。カーソルは、デザイナーのどこでも常に「いいえ」と表示されます。
私は半日の間、ネット上でこれについて何かを見つけようとしてきました.
どんなフィードバックでも大歓迎です。ありがとうございました!
カルロス