我的目标是让整个顶级StackPanel (或其他一些元素)使用返回的Url数据中的XML值打开一个网站。我想知道实现这一目标的最好方法是什么?
下面是我的XAML代码示例:
<DataTemplate>
<StackPanel> //bind Url here somehow
<Image Source="{Binding Thumbnail}"></Image>
<StackPanel>
<TextBlock Text="{Binding Title}" TextWrapping="Wrap"/>
<StackPanel>
<TextBlock Text="{Binding Duration}"></TextBlock>
<TextBlock Text="{Binding Stats}"></TextBlock>
</StackPanel>
</StackPanel>
</StackPanel>
</DataTemplate>下面是我后面的代码返回的值的一个示例:
public class XmlData
{
public string Id { get; set; }
public string Title { get; set; }
public string Url { get; set; }
public string Thumbnail { get; set; }
public string Stats { get; set; }
public double Duration { get; set; }
}感谢代码示例。提前谢谢。
发布于 2012-01-21 04:53:59
Xaml:
<DataTemplate>
<StackPanel MouseLeftButtonDown="StackPanelMouseLeftButtonDown" Tag="{Binding Url}">
<Image Source="{Binding Thumbnail}"></Image>
<StackPanel>
<TextBlock Text="{Binding Title}" TextWrapping="Wrap"/>
<StackPanel>
<TextBlock Text="{Binding Duration}"></TextBlock>
<TextBlock Text="{Binding Stats}"></TextBlock>
</StackPanel>
</StackPanel>
</StackPanel>
</DataTemplate>代码隐藏:
private void StackPanelMouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
var realSender = (StackPanel)sender;
WebBrowserTask wbt = new WebBrowserTask();
wbt.URL = (string)realSender.Tag;
wbt.Show();
}发布于 2012-01-21 04:22:10
stackpanel本身不能打开URL,为此你需要一个WebBrowser控件。
<DataTemplate>
<StackPanel>
<WebBrowser Source="{Binding Url}" />
<Image Source="{Binding Thumbnail}"></Image>
<StackPanel>
<TextBlock Text="{Binding Title}" TextWrapping="Wrap"/>
<StackPanel>
<TextBlock Text="{Binding Duration}"></TextBlock>
<TextBlock Text="{Binding Stats}"></TextBlock>
</StackPanel>
</StackPanel>
</StackPanel>
</DataTemplate>https://stackoverflow.com/questions/8947202
复制相似问题