【问题标题】:wpf Image control resize on mouseoverwpf图像控件在鼠标悬停时调整大小
【发布时间】:2011-04-22 16:08:43
【问题描述】:

我在这里找到了如何在 xaml 中执行此操作的一个很好的示例,但我想知道是否有人可以帮助我在代码中使用此示例。我遍历图像并在代码中创建图像控件,我想设置类似于我在下面这个链接中找到的东西,这样我就可以在鼠标悬停时调整图像大小。

Given a WPF Image control, how can I make it bigger through animation on MouseEnter?

【问题讨论】:

    标签: wpf image resize


    【解决方案1】:

    我建议您使用Data-Templating 而不是“循环遍历图像”,这样您就可以完全重用该 XAML。


    有一个很好的示例展示了 Image-DataTemplating:

    <Grid>
        <Grid.Resources>
           <XmlDataProvider x:Key="flickrdata" Source="http://api.flickr.com/services/feeds/photos_public.gne?tags=flower&amp;lang=en-us&amp;format=rss_200">
              <XmlDataProvider.XmlNamespaceManager>
                 <XmlNamespaceMappingCollection>
                    <XmlNamespaceMapping Prefix="media" Uri="http://search.yahoo.com/mrss/"/>
                 </XmlNamespaceMappingCollection>
              </XmlDataProvider.XmlNamespaceManager>
           </XmlDataProvider>
           <DataTemplate x:Key="itemTemplate">
              <Image Width="75" Height="75" Source="{Binding Mode=OneWay, XPath=media:thumbnail/@url}"/>
           </DataTemplate>
           <ControlTemplate x:Key="controlTemplate" TargetType="{x:Type ItemsControl}">
              <WrapPanel IsItemsHost="True" Orientation="Horizontal"/>
           </ControlTemplate>
        </Grid.Resources>
        <ItemsControl
           Width="375"
           ItemsSource="{Binding Mode=Default, Source={StaticResource flickrdata}, XPath=/rss/channel/item}"
           ItemTemplate="{StaticResource itemTemplate}"
           Template="{StaticResource controlTemplate}">
        </ItemsControl>
    </Grid>
    

    这会从 WEB 获取图像 url,但您可以绑定到包含图像路径的 ObservableCollection&lt;string&gt;

    【讨论】:

    • 我正在遍历图像路径数组,并使用 bitmapimage 打开图像并创建一个图像控件来分配。图像列表计数总是不同,你是说数据模板允许我这样做吗?
    • 如果你使用正确的集合,是的。在这种情况下,您应该使用ObservableCollection&lt;string&gt;,如果您绑定到它并添加了新的图像路径,如果模板正确,ItemsControl 将自动创建新图像。
    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多