从RadDiagramToolBox中的图标创建自定义实例

时间:2014-11-16 21:06:49

标签: c# wpf xaml telerik raddiagram

我正在使用RadDiagram在我们的系统中制作设计师。我的屏幕中有三个部分,(RadDiagramRadDiagramToolBoxToolBar)。

我必须在RadDiagramToolBox中显示的是图标(我的自定义形状的图像)。出于某种原因,我的自定义形状无法从RadDiagramShape继承。这就是为什么RadDiagram不接受我的自定义形状,而MyDesigner继承自RadDiagram,并覆盖this.Drop += MyDesigner_Drop;

为此我使用了这个层次结构http://www.telerik.com/forums/raddiagramtoolbox-xaml-example#IUr1zXo3zUq-9NytMbeamw 如下:

<telerik:RadDiagramToolbox Grid.Column="0" Grid.RowSpan="3"
                        Header="{Binding SelectedItem.Header, RelativeSource={RelativeSource Self}}"
                        Visibility="{Binding IsChecked, ElementName=toolboxButton, Converter={StaticResource BooleanToVisibilityConverter}}">
<telerik:RadDiagramToolboxGroup Header=" Charts ">

<telerik:RadDiagramToolboxItem Name="TimeChartIcon" Background="Transparent">
    <telerik:RadDiagramShape Name="TimeChartIcon1" Background="Transparent" BorderBrush="Transparent">
        <Image Source="/Fathom.TestDiagram;component/Images/TimeChartIcon.png"                    
                Stretch="UniformToFill"
                Name="TimeChartIcon2"/>
    </telerik:RadDiagramShape>
</telerik:RadDiagramToolboxItem>

<telerik:RadDiagramToolboxItem Background="Transparent">
    <telerik:RadDiagramShape Name="ValueChartIcon" Background="Transparent" BorderBrush="Transparent">
            <Image Source="/Fathom.TestDiagram;component/Images/ValueChartIcon.png"                    
                    Stretch="Fill"/>
        </telerik:RadDiagramShape>
    </telerik:RadDiagramToolboxItem>
</telerik:RadDiagramToolboxGroup>

<telerik:RadDiagramToolboxGroup Header=" Others "/>
</telerik:RadDiagramToolbox>

并在MyDesigner_Drag中使用了此http://www.telerik.com/forums/raddiagramtoolbox-drag-drop#trdWTLlUNEKga8H6yFFsqQ 我在Admin Tina的代码之后添加了这些代码行:

droppedShape.Background = Brushes.Transparent;                   
droppedShape.Position = e.GetPosition(this);
droppedShape.BorderBrush = Brushes.Transparent;
droppedShape.BorderThickness = new Thickness(2);
droppedShape.Padding = new Thickness(0);
this.Items.Add(droppedShape);

我得到的是,我可以拖动包含来自RadDiagramShape的图片的RadDiagrmToolBox并将其删除,因为RadDiagramShape包含RadDiagramShape内的相同图片。 (我如何在新的实例中获得图像?)

但我想要的是,我想检查MyDesigner_Drag事件内部的任何信息,让我知道用户拖放的自定义形状以从中创建实例。喜欢(名称或内容 - &gt;图像源) 我可以看到item.Content是一个图像,但我无法访问Name或Image Source,我无法看到我在调试模式下在Xaml代码中硬编码的图像的名称或来源。

0 个答案:

没有答案