0

我创建了一个用户控件,其中包含另一个用户控件作为子控件。我尝试移动子用户控件 bu 发出以下语句

this.versionDisplay.SetValue(Canvas.TopProperty,10.0);

但是VS2010显示错误如下

错误 23 'MainApp.MainGui.MainControls.MainTitleControl' 不包含 'versionDisplay' 的定义并且没有扩展方法 'versionDisplay' 接受类型为 'MainApp.MainGui.MainControls.MainTitleControl' 的第一个参数(您是否缺少使用指令还是程序集引用?)

我确信子控件的名称是 versionDisplay。

MainTitleControl 的代码

<UserControl x:Class="Main.MainGui.MainControls.MainTitleControl"
     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:wcontrols="clr-namespace:WEPA.MainGui.MainControls"
     Height="80" Width="395" Loaded="UserControl_Loaded" >

     <Grid Background="Transparent"  >
         <Image  HorizontalAlignment="Left"  Name="image1" Stretch="Fill" VerticalAlignment="Top"  Width="635" Height="120" Source="/MainApplication;component/images/UnCategorized/Wireless.png" Margin="12,0,0,0" / >
         <wcontrols:supportInfoControl Name="versionDisplay" Height="20" Canvas.Left="185" Canvas.Top="70" Margin="200,95,-114,-35" />
    </Grid>
</UserControl>

请指教。

4

1 回答 1

1

您嵌套的 UserControl (wcontrols:supportInfoControl) 似乎包含在网格中,因此即使您正确设置了 Canvas.Top 属性,如下所示:

Canvas.SetTop(this.versionDisplay, 10.0);

那么它仍然没有任何效果。我会试试这个:

this.versionDisplay.RenderTransform = new TranslateTransform(0.0, 10.0);

您没有指定希望此重定位对兄弟元素和父元素产生什么影响,因此我建议使用 RenderTransform。如果您想要不同的整体行为,则需要更具体。

我希望这有帮助。

于 2012-11-07T15:26:17.460 回答