如何将.CS功能添加到表达式设计中内置的XAML类?
我有一个设计师交给我的Silverlight项目,它似乎还没有太多的功能。我注意到的第一件事是,似乎没有任何与"LayoutRoot“的子文件相匹配的相应.cs文件。我的意思是,正如它在表达式混合中显示的那样,这些都是"LayoutRoot“下”对象和时间轴选项卡“中的子节点。
在Visual Studio8中查看时,它们看起来像是Page.xaml类的子节点。第一步不是应该生成一些.cs文件或类来处理这些网格的功能吗?我对第一个子网格的名称进行了搜索,但在任何现有的.cs文件中都没有得到任何结果。如何生成.cs文件?
发布于 2010-07-01 23:15:07
Grid通常用作整个页面的容器控件。你通常不会直接处理它。如果您在网格中有控件,则需要处理这些控件。为它们命名(即..x:Name="someName"),然后处理这些控件的事件。在控件和事件处理方面,它几乎与WinForms完全一样。
例如,这里有一些来自WPF项目的XAML (我知道它不是Silverlight,但基本上是一样的)
<Grid x:Name="LayoutRoot">
<Canvas
x:Name="canvas1"
Height="100"
HorizontalAlignment="Left"
Margin="116,62,0,0"
VerticalAlignment="Top"
Width="200">
</Canvas>
<Button
x:Name="btnGetChildren"
Content="Get Children"
Height="23"
Margin="174,209,218,47"
Width="75"
Click="btnGetChildren_Click" />
</Grid>请注意,我在网格中有一个画布和一个按钮。注意,该按钮有一个我正在处理的Click事件。单击事件的代码位于页面的"xaml.cs“文件中。
private void btnGetChildren_Click(object sender, RoutedEventArgs e)
{
foreach (UIElement element in canvas1.Children)
{
// some code
}
}发布于 2010-07-02 21:48:09
XAML和xaml.cs文件是分部类,因此页面上的组件是该类的属性,即使您在.cs文件后面的代码中看不到它们。要查看实际操作,请创建一个方法,并在方法体中开始键入对象的名称,您将看到它将出现在intellisense中。
另一种方法是从设计图面处理它。在“属性”窗口上,切换到“事件”。找到要执行操作的事件,并在提供的字段中键入方法名称。当你点击"Enter“时,VS会将方法连接到事件,并直接转到你刚刚创建的处理程序方法。
https://stackoverflow.com/questions/3131104
复制相似问题