繁体   English   中英

将WPF XAML代码移植到Silverlight XAML代码

[英]Porting WPF XAML code to Silverlight XAML code

我有一些WPF XAML代码,在尝试使等效Silverlight时遇到一些重大问题。 现在,在有人开始大声疾呼两者之间如何不兼容的时候,我已经知道了。 我需要创建一个外观与现在的代码相似的Silverlight应用程序。 我能够转换所有的C#类,但是XAML代码令人痛苦。 这是我遇到问题的WPF的XAML代码:

<ControlTemplate x:Key="DesignerItemTemplate" TargetType="ContentControl">
  <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}">
    <s:MoveThumb Template="{StaticResource MoveThumbTemplate}" Cursor="SizeAll"/>
    <ContentPresenter Content="{TemplateBinding ContentControl.Content}"/>
  </Grid>
</ControlTemplate>

问题是我在项目的名称空间s:下看不到MoveThumb(MoveThumb是C#类)。 任何建议将不胜感激。

编辑这是Silverlight项目的所有代码。 一定要意识到,我对这种过渡还远远没有完成,并且我并不一定要就代码其他部分的其他问题寻求帮助。 只是这一部分(Designer Item Template下的部分)。

<UserControl x:Class="SilverlightFlowConnectors.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:s="clr-namespace:SilverlightFlowConnectors"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">

<UserControl.Resources>
    <!-- MoveThumb Template -->
    <ControlTemplate x:Key="MoveThumbTemplate" TargetType="s:MoveThumb">
        <Rectangle Fill="Transparent"/>
    </ControlTemplate>

    <!-- Designer Item Template-->
    <ControlTemplate x:Key="DesignerItemTemplate" TargetType="ContentControl">
        <Grid DataContext="{StaticResource MoveThumbTemplate}">

        </Grid>
    </ControlTemplate>
</UserControl.Resources>

<Canvas>
    <ContentControl Width="130"
                MinWidth="50"
                Height="130"
                MinHeight="50"
                Canvas.Top="150"
                Canvas.Left="470">
        <Ellipse Fill="Red"
           IsHitTestVisible="False"/>
    </ContentControl>
    <ContentControl Width="130"
                MinWidth="50"
                Height="130"
                MinHeight="50"
                Canvas.Top="150"
                Canvas.Left="150">
        <Path Fill="Blue"
        Data="M 0,5 5,0 10,5 5,10 Z"
        Stretch="Fill"
        IsHitTestVisible="False"/>
    </ContentControl>
    <ContentControl Width="130"
        MinWidth="50"
        Height="130"
        MinHeight="50"
        Canvas.Top="150"
        Canvas.Left="150"
        Template="{StaticResource DesignerItemTemplate}">
        <Path Fill="Blue"
            Data="M 0,5 5,0 10,5 5,10 Z"
            Stretch="Fill"
            IsHitTestVisible="False"/>
    </ContentControl>
</Canvas>

您需要创建一个指定名称空间的短字符串s作为目标,该字符串s您当前具有MoveThumb s为目标,或者修复您移植到的列表。 只是重做s用,如果没有别的智能感知的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM