2
我想用自定义样式创建MyScrollViewer
控件。 我创建了一个UserControl
为ScrollViewer
(我们能不能创造一个CustomControl
因为ScrollViewer
从System.Windows.Controls
是一个密封类),并在UserControl
的资源我已经添加了ScrollViewer
(自定义样式)的风格。在Silverlight中创建ScrollViewer UserControl时出现问题
在Codebehind中,我创建了一个属性Content
,它覆盖了基类的Content
(即UserControl
)。
代码隐藏:
public partial class ScrollViewer : UserControl
{
private System.Windows.Controls.ScrollViewer _scrollViewer;
public ScrollViewer()
{
InitializeComponent();
// DataContext = this;
_scrollViewer = new System.Windows.Controls.ScrollViewer();
}
public new object Content
{
get { return _scrollViewer; }
set
{
_scrollViewer.Content = value;
base.Content = _scrollViewer;
}
}
}
但这段代码的问题是,我不能够在运行时获得Control
的内线ScrollViewer
。假设我在ScrollViewer
内有TextBox
,我无法获得该控件。例如: -
<ScrollViewer x:Name="scrDetail" >
<StackPanel Margin="6" Grid.Column="1" Grid.Row="0">
<Label Name="lblLevel" Content="Level" Margin="2" />
<TextBox HorizontalAlignment="Stretch" Margin="2" Name="txtLevel" IsEnabled="False" Text="System" />
</StackPanel>
</ScrollViewer>
我不能够在运行时设置文本,因为我越来越txtLevel
为null
。
您需要创建一个usercontrol而不是为默认的scrollviewer创建样式的原因是什么? – 2011-05-05 11:09:15
@Xin我们已经创建了一个控制库,我想在其中添加make conrol,以便每个人都可以使用该控件。 – sag 2011-05-05 11:27:17
你也可以分享你的风格吧?我也不认为一个usercontrol可以风格。 – 2011-05-05 11:46:06