我正在WPF中创建一个图库控件,并尽可能使用尽可能多的设计时数据来简化Visual Studio(2013)中的调整。
到目前为止,我有以下代码,它在运行时有意,但设计师似乎忽略了d:DesignHeight和d:DesignWidth attribut on Image元素。
<UserControl x:Class="ImageGalleryControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="400"
d:DesignWidth="800"
d:DataContext="{d:DesignData Source=DesignData/ImageCollection.xaml}">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}"
d:DesignHeight="150"
d:DesignWidth="150"
Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ImageWidth}"
Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ImageWidth}"
Margin="3"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</UserControl>
它从ImageCollection.xaml中获取预期的设计时数据,但不是Image元素的设计高度。是不是应该这样工作,我的谷歌福让我失望,还是有另一种方式我可以实现同样的目标?