繁体   English   中英

如何为Silverlight APP的Expression Design中内置的XAML类添加.CS功能?

[英]How do I add .CS functionality to XAML classes built in Expression Design for a Silverlight APP?

如何将.CS功能添加到Expression Design中内置的XAML类中?

我有一个设计师交付给我的Silverlight项目,该项目似乎还没有太多功能。 我注意到的第一件事是,似乎没有任何对应的.cs文件与“ LayoutRoot”的子级匹配。 我的意思是,正如在Expression Blend中显示的那样,这些是“ LayoutRoot”下“对象和时间轴选项卡”中的子节点。

在Visual Studio 8中查看时,它们似乎是Page.xaml类的子节点。 第一步不应该是我生成一些.cs文件或类来处理这些网格的功能吗? 我在第一个子网格的名称上进行了搜索,但是在任何现有的.cs文件中都没有得到任何结果。 如何生成.cs文件?

网格通常用作整个页面的容器控件。 您通常不直接处理它。 如果网格中有控件,则可以处理这些控件。 给它们命名(即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
    }
}

XAML和xaml.cs文件是部分类,因此即使您在.cs文件后面的代码中看不到它们,页面上的组件也是该类的属性。 若要查看实际效果,请创建一个方法,并在方法主体中开始键入对象的名称,然后您将看到它出现在智能感知中。

另一种方法是从设计表面处理它。 在属性窗口上,切换到“事件”。 找到您要操作的事件,然后在提供的字段中键入方法名称。 当您按下“ Enter”键时,VS将把方法连接到事件,并直接转到您刚刚创建的处理程序方法。

暂无
暂无

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

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