繁体   English   中英

如何更改从Windows Phone 7中的webservice收到的图像样式

[英]how to change the image style received from webservice in windows phone 7

在此输入图像描述

我正在分享我的应用程序的屏幕截图。 即将到来的图像我想要它在侧面并且应该是小的尺寸。 在这里,我也没有得到完整的图像。 任何人都可以帮助我将图像放在列表框中并将其显示在侧面。

我的xaml代码是:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
     <ListBox Name="listBox1">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Button>
                        <Button.Content>
                            <ScrollViewer HorizontalScrollBarVisibility="Auto" Height="80" Width="400">
                                <!--<ScrollViewer Height="80">-->
                                <StackPanel Orientation="Horizontal" Margin="0,0,0,0">
                                    <StackPanel Orientation="Vertical" Height="80">

                                        <TextBlock Text="{Binding Path=News_Title}" TextWrapping="Wrap" ></TextBlock>
                                        <TextBlock Text="{Binding Path=News_Description}" TextWrapping="Wrap"></TextBlock>
                                      <TextBlock Text="{Binding Path=Date_Start}" TextWrapping="Wrap"></TextBlock>
                                        <Image Source="{Binding ImageBind }" />

                                    </StackPanel>
                                </StackPanel>
                            </ScrollViewer>
                        </Button.Content>
                    </Button>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

    </Grid>

我的.cs代码是:

public class Newss
{
    public string News_Title { get; set; }
    public string News_Description { get; set; }
    public string Date_Start { get; set; }
    public string image_path { get; set; }
    public BitmapImage ImageBind{get;set;}

}

public News()
{
    InitializeComponent();

    KejriwalService.aapSoapClient client = new KejriwalService.aapSoapClient();
    client.getarvindNewsCompleted += new EventHandler<KejriwalService.getarvindNewsCompletedEventArgs>(client_getarvindNewsCompleted);
    client.getarvindNewsAsync();
}

void client_getarvindNewsCompleted(object sender, KejriwalService.getarvindNewsCompletedEventArgs e)
{
    string result = e.Result.ToString();
    List<Newss> listData = new List<Newss>();
    XDocument doc = XDocument.Parse(result);

   foreach (var location in doc.Descendants("UserDetails"))
   {
        Newss data = new Newss();


        data.News_Title = location.Element("News_Title").Value;

        //data.News_Description = location.Element("News_Description").Value;
        data.Date_Start = location.Element("Date_Start").Value;
        data.image_path = location.Element("image_path").Value;
        data.ImageBind = new BitmapImage(new Uri( @"http://political-leader.vzons.com/ArvindKejriwal/images/uploaded/"+data.image_path, UriKind.Absolute));

        listData.Add(data);
    }

    listBox1.ItemsSource = listData;

}

尝试将Image移到内部StackPanel之外:

.....
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
    <StackPanel Orientation="Vertical" Height="80">
        <TextBlock Text="{Binding Path=News_Title}" TextWrapping="Wrap" ></TextBlock>
        <TextBlock Text="{Binding Path=News_Description}" TextWrapping="Wrap"></TextBlock>
        <TextBlock Text="{Binding Path=Date_Start}" TextWrapping="Wrap"></TextBlock>
    </StackPanel>
    <Image Source="{Binding ImageBind }" />
</StackPanel>
.....

这将使Image出现在文本旁边。 然后尝试将Image控件的WidthHeight属性设置为固定值,并相应地设置Stretch属性。 有关设置Stretch属性的参考,请参阅此文章

这里有太多错误的东西,我不知道你想要什么。

  1. 您已将按钮放在ListBox的项目中。 您应该删除按钮并依赖列表框自己的项目选择机制来处理触摸元素,或者继续使用按钮,但将ListBox替换为不处理触摸的ItemsControl。
  2. 您已将ScrollViewer放在这些按钮中。 因此,如果您有10个项目,您将拥有10个按钮,每个按钮都有自己的滚动查看器。 你为什么那样做?
  3. 您已将StackPanel的高度设置为80.当指定固定高度时,Silverlight通常不关心内容是否适合,而是剪切内容。 指定元素的绝对大小并不是一个好主意。
  4. 您应该使用具有两行和两列的单个Grid,而不是使用两个嵌套的堆栈面板,其中image占据第二列的两行(使用Grid.RowSpan属性)。

你问的是关于改变图像风格的问题? 你应该先修复你的XAML的其余部分......

暂无
暂无

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

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