我创建了一个用户控件,其中包含另一个用户控件作为子控件。我试过移动子用户控件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>
请建议。
答案 0 :(得分:1)
您的嵌套UserControl(wcontrols:supportInfoControl)似乎包含在Grid中,因此即使您正确设置了Canvas.Top属性:
Canvas.SetTop(this.versionDisplay, 10.0);
然后它仍然没有效果。我会试试这个:
this.versionDisplay.RenderTransform = new TranslateTransform(0.0, 10.0);
您没有指定此重定位对兄弟元素和父元素的影响,因此我建议使用RenderTransform。如果您想要不同的整体行为,则需要更加具体。
我希望这会有所帮助。