C#第九节课

这节课主要是展示了各种大家的实验程序

说几个感受

创意都很棒啊!

我觉得大家都很厉害。。。比如wwx的游戏,用到了游戏引擎。。。据说ltp他们组的也是用到了游戏引擎

其次觉得我这个前端似乎并没有艺术细菌!界面并不是很美观。。。。

比较新颖的一些功能就是那些嵌入了游戏引擎的。。。

然后发现了自己组的一些不足。。。比如数据库比较弱。。。当然了我们的程序因为不涉及到数据库。不过数据库还是需要学一学的。

说一点自己组实验的技术

WPF平台的跳转我用了这样一段代码来实现

private void AllAccount_Click(object sender, MouseButtonEventArgs e)
{
    AllAccount win = new AllAccount();
    this.Close();
    win.Show();
}

但是我遇到了问题就是。。。完全被限制住了。。。不知道怎么传参数了。。。。

因为在win8app里面是用

private void backButton_Click(object sender, RoutedEventArgs e)
        {
            var frame = new Frame();
            frame.Navigate(typeof(MainPage));
            Window.Current.Content = frame;
            Window.Current.Activate();
        }

这里在navigate的里面可以加参数如

frame.Navigate(typeof(MainPage),pageID);

但是在上面那种就不知道怎么弄了。。。

后来发现还可以这样。。。

我们在要实例化的那个windows里面设置一个带参数的构造函数就行了

然后我们在实例化的时候可以 把那个参数当成构造函数的参数传进去

这样做确实比我之前的方法要好。

之前的方法中我是在APP.cs里面声明了一个static的int值作为全局变量。。。

然而在开发中全局变量的应用是很容易出麻烦的。。。面向对象的一大特点就是

每一个对象就只处理跟自己有关的数据不要控制别人的内容。。。。

所以这里的传参方式需要学习

 

其次说一下在WPF开发中。。。遇到的页面大小拉伸的问题

<Viewbox Stretch="Fill">
    <Grid>
        <Button Content="返回" HorizontalAlignment="Left" Margin="407,270,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
        <ListView ItemsSource="{Binding}" HorizontalAlignment="Left" Height="183" Margin="0,61,0,0" VerticalAlignment="Top" Width="482">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Usage}" FontSize="25"/>
                        <StackPanel>
                            <TextBlock Text="{Binding Time}" FontSize="10"/>
                            <TextBlock Text="{Binding Amount}" FontSize="10" />
                            <TextBlock Text="{Binding Remark}"  />
                            <Button Name="deleteButton" Click="Delete_Click" Tag="{Binding Id}" Content="删除" FontSize="10"></Button>
                            <Button Name="editButton" Click="Edit_Click" Tag="{Binding Id}" Content="编辑" FontSize="10"></Button>
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
        <TextBox HorizontalAlignment="Left" Height="37" Margin="39,19,0,0" TextWrapping="Wrap" Text="所有账单" VerticalAlignment="Top" Width="133" FontSize="30"/>
    </Grid>
</Viewbox>
这里要注意我在外面套了一个viewBox,这个是用来解决我们的程序拉伸时候内容不跟着变这个问题的。
有了这个viewBox,并且将viewbox的Stretch设置为fill,则会将viewbox内部所有的控件都跟着长宽比进行拉伸收缩。从而实现这个功能。

也是比较方便。。。stretch这里有四个选项。fill是完全跟着变化。。。还有别的固定长宽比变化等变化方式。。。

这个属性也不只用在这里。。。image那里也可以用。。。很方便吧

这周主要的时间用来写实验了。。这里就介绍两个心得。。。具体内容等将实验代码完善之后会上架然后在后续的更新中和队友商量一下争取将代码开源让更多的人讨论指出我们的不完善之处。。。就是这样!

posted on 2015-05-18 12:29  Snorlax  阅读(172)  评论(0编辑  收藏  举报