四天玩转Windows phone7开发笔记(第三天)

本文介绍WP应用开发中的关键组件操作,包括图片切换、HyperlinkButton导航、弹出窗口控制及独立存储使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Image组件

 

image组件的source属性可以添加图片,Stretch可以改变图片缩放属性。
通过按钮更换图片:
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            BitmapImage myImage = new BitmapImage(new Uri("/PhoneApp1;component/Images/002.jpg", UriKind.Relative));
            image1.Source = myImage;
        }
HypelinkButton
通过NavigateUri属性输入 /工程名;component/文件属性/导航页名称.xaml。

如果HypelinkButton的NavigateUri路径是/asp;component/Views/Page1.xaml?id=2

点击该空间

 private void textBlock1_Loaded(object sender, RoutedEventArgs e)
        {
            textBlock1.Text = string.Format("vaule{0}", NavigationContext.QueryString["id"]);
        }

 

进入新的页面,名称为textBlock控件显示字符为“1”。

 

 

 

    <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">  

                                                                                      //图标Uri路径                                                         Click事件                                           
            <shell:ApplicationBarIconButton IconUri="/Image/appbar.minus.rest.png" Text="new" Click="ApplicationBarIconButton_Click"/>
            <shell:ApplicationBarIconButton IconUri="/Image/appbar.new.rest.png" Text="new" Click="ApplicationBarIconButton_Click_1"/>

            //下拉菜单

            <shell:ApplicationBar.MenuItems>

             //下拉菜单内容选项
                <shell:ApplicationBarMenuItem Text="1"/>
                <shell:ApplicationBarMenuItem Text="2"/>
                <shell:ApplicationBarMenuItem Text="3"/>
                <shell:ApplicationBarMenuItem Text="4"/>
                <shell:ApplicationBarMenuItem Text="5"/>
                <shell:ApplicationBarMenuItem Text="6"/>
                <shell:ApplicationBarMenuItem Text="7"/>
                <shell:ApplicationBarMenuItem Text="8"/>
            </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>

 

 

 

弹出窗口

<Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="696"/>
        </Grid.RowDefinitions>

        <!--TitlePanel 包含应用程序的名称和页标题-->
        <!--ContentPanel - 在此处放置其他内容-->

       
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

          //Open按钮
            <Button Content="Open"
                    Name="openButton"
                    Height="72"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    Margin="150,200,0,0,"
                    Width="160"

                   //Open按钮事件
                    Click="openButton_Click"/>
        </Grid>

       //一块画布

        <Canvas Name="myDialog"
                Height="438"
                Width="427"
                HorizontalAlignment="Left"
                VerticalAlignment="Top"
                Margin="24,48,0,0" Background="#FFFC0000"
                Visibility="Collapsed">//使画布成为收缩状态  屏幕上不显示

           // 画布上的文字板
            <TextBlock Name="instructionsTextBlock"
                       HorizontalAlignment="Left"
                       VerticalAlignment="Top"
                       Height="50"
                       Width="400"
                       Text="**********************************"
                       TextAlignment="Left"
                       TextWrapping="Wrap"/>

           //画布上的Close按钮
            <Button Name="closeButton"
                    Content="Close"
                    Height="70"
                    Width="200"
                    Margin="125,300"
                    Click="closeButton_Click"
                    />
        </Canvas>
    </Grid>

 

 

通过Open按钮让画布内容显示:

private void openButton_Click(object sender, RoutedEventArgs e)
        {

                                            //  (           修改vistbility属性的值              )
            myDialog.Visibility = System.Windows.Visibility.Visible;
        }

再通过画布的Close按钮Click让画布隐藏:

        private void closeButton_Click(object sender, RoutedEventArgs e)
        {                        

                                             //(           修改vistbility属性的值              )

            myDialog.Visibility = System.Windows.Visibility.Visible;
        }

 

 

代码的位置也会影响控件的图层位置,xmal下面控件代码的图层在上,上边控件的代码与上相反。

 

 

独立存储

一下定义了三个按钮和一个textbox

 

 

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBox Height="268"
                     HorizontalAlignment="Left"
                     Name="infoTextBox"
                     Text=""
                     VerticalAlignment="Top"
                     Width="480"
                     TextWrapping="NoWrap"
                     VerticalScrollBarVisibility="Auto"/>
            <Button Content="Save"
                    Height="72"
                    HorizontalAlignment="Left"
                    Margin="6,280,0,0"
                    Name="button1"
                    VerticalAlignment="Top"
                    Width="147"
                    Click="save_Click"/>
            <Button Content="Clear"
                    Height="72"
                    HorizontalAlignment="Left"
                    Margin="159,280,0,0"
                    Name="button2"
                    VerticalAlignment="Top"
                    Width="147"
                    Click="clear_Click"/>
            <Button Content="Open"
                    Height="72"
                    HorizontalAlignment="Left"
                    Margin="308,280,0,0"
                    Name="button3"
                    VerticalAlignment="Top"
                    Width="147"
                    Click="open_Click"/>
        </Grid>
    </Grid>

 

以上定义的三个按钮   save、clear和open还有一个textbox

save保存textbox上输入的文字,

clear清屏文字,

open打开保存的文字。

这些功能需要对按钮的事件编写代码如下:

 

public partial class MainPage : PhoneApplicationPage
    {
        // 构造函数
        public MainPage()
        {
            InitializeComponent();
        }

         //保存按钮的click事件保存textbox上的内容

        private void save_Click(object sender, RoutedEventArgs e)
        {

            // 定义一个var形变量appStorage保存来自用户程序的独立存储文件
            var appStorage = IsolatedStorageFile.GetUserStoreForApplication();
            string fileName = "simple.txt";

            //用var变量file保存appStorage打开的文件,OpenFile 方法用于提供一种从对话框快速打开文件的功能。出于安全目的,以只读方式打开文件。若要以读/写模式打开文件,必须使用其他方法,指定操作系统应打开文件(如果文件存在);否则,应创建新文件。如果用 FileAccess.Read 打开文件,则需要FileIOPermissionAccess.Read如果文件访问为 FileAccess.Write,则需要FileIOPermissionAccess.Write如果用 FileAccess.ReadWrite 打开文件,则同时需要FileIOPermissionAccess.ReadFileIOPermissionAccess.Write如果文件访问为 FileAccess.Append,则需要FileIOPermissionAccess.Append 


            using (var file = appStorage.OpenFile(fileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
            {

                           //用上边定义的file变量为下面定义的writer的流初始化StreamWriter 类的一个新实例。
                using (var writer = new StreamWriter(file))
                {

                  //把textbox上输入的内容写入到writer对象中,完成了把textbox上的内容写入到独立存储区当中。
                    writer.Write(infoTextBox.Text);
                }
            }
        }

      //清除textbox文字

        private void clear_Click(object sender, RoutedEventArgs e)
        {
            infoTextBox.Text = "";
        }

       //打开保存的内容显示在textbox上

        private void open_Click(object sender, RoutedEventArgs e)
        {
            using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
            {

                  //使用StreamReader 读取标准文本文件的各行信息。
                using (StreamReader sr = new StreamReader(store.OpenFile("simple.txt", FileMode.Open, FileAccess.Read)))
                {

                    //输出保存的文本信息
                    infoTextBox.Text = sr.ReadToEnd();
                }
            }
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值