我为每个项目创建了一个包含4张图片的列表框。它工作得很快,而且它的所有甜蜜和花花公子,但我不知道如何根据屏幕分辨率做这个dinamicaly。
所以目前我有连续4张图片90x90 + 5边距,但是如果屏幕分辨率不够大,只支持4张图片3怎么办?例如,如果我倾斜手机,而我是红色的,他们也将推出320×480分辨率。
<ListBox Height="646" HorizontalAlignment="Left" Margin="6,19,0,0" Name="MainListbox" VerticalAlignment="Top" Width="444" ScrollViewer.VerticalScrollBarVisibility="Visible" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
private void GetDataToBind(List<string> images, int spliter)
{
for (int i = spliter; i < images.Count; i += spliter)
{
StackPanel temp = new StackPanel();
temp.Orientation = System.Windows.Controls.Orientation.Horizontal;
for (int j = i - spliter; j < i && j < images.Count + spliter; j++)
{
Grid tempGrid = new Grid();
Rectangle temprect = new Rectangle();
temprect.Fill = new SolidColorBrush(Colors.White);
temprect.Height = 90;
temprect.Width = 90;
tempGrid.Children.Add(temprect);
tempGrid.Children.Add(GetImageSourceFromString(images[j]));
temp.Children.Add(tempGrid);
}
MainListbox.Items.Add(temp);
}
}
int splitter确定一行中有多少张图片。
解决方案我对包装面板,LazyListbox不感兴趣。有人知道用动态风格或优雅的东西来解决这个问题吗?
最好的问候
答案 0 :(得分:0)
所有WP7设备都具有相同的屏幕分辨率480x800。您不必担心某些图像不适合屏幕。
答案 1 :(得分:0)
正如Ku6opr所说,所有设备的特定屏幕分辨率为480x800。随着未来推出低成本设备,这种情况将发生变化,但它们也将具有严格定义的分辨率(320x480)。
实际上,您将拥有2种屏幕格式。然后,询问设备的分辨率和相应的样式将是一件简单的事情。但它不需要是动态的 - 您可以设置2种样式(每种分辨率一种),然后根据报告的分辨率应用样式。