【发布时间】:2019-04-04 12:52:38
【问题描述】:
我正在尝试使用 XAML 绑定从屏幕上的滑块影响 gridview 数据模板元素大小。
我有一个由缩略图组成的网格视图,其中元素定义如下:
<GridView.ItemTemplate >
<DataTemplate >
<StackPanel Orientation="Vertical"
HorizontalAlignment="Center"
VerticalAlignment="Center"
KeyDown="IsitenterThumb"
BorderBrush="LightSeaGreen"
BorderThickness="1"
PointerWheelChanged="ctlThumbnails_PointerWheelChanged">
<Image Source="{Binding thumb}"
x:Name="thumbimg"
Visibility="Visible"
Height="{Binding ItemSize}" Width="{Binding ItemSize, ElementName=page}" Stretch="Uniform"
Tapped="ThumbnailSelected"
DoubleTapped="CloseThumbnails"
/>
<TextBlock Text="{Binding name}" Margin="5,5"
Foreground="White"
Width="{Binding ItemSize}"
/>
</StackPanel>
</DataTemplate>
我有以下变量定义如下:
public double ItemSize
{
get => _itemSize;
set
{
if (_itemSize != value)
{
_itemSize = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ItemSize)));
}
}
}
private double _itemSize;
public event PropertyChangedEventHandler PropertyChanged;
我原以为更改 ItemSize 的值会影响 gridview 数据模板。这是从 PhotoLab 样本中获取的。
相反,我每页都有一个巨大的“拇指”...任何帮助将不胜感激!
【问题讨论】:
-
ElementName = page是什么?您尝试将其绑定到Page? -
这是主页
-
那么,为什么将
lementName = page放在您的xaml 中?我不认为您试图将图像的宽度设置为与MainPage的宽度相同。也许这就是为什么你会得到这么大的图片。 -
你想要一个诚实的答案吗?....我尝试了很多策略来做到这一点,包括搜索 UI 树...我出于绝望尝试将此“元素名称”添加到绑定中,因为这是在 Photolab 示例中完成的方式github.com/Microsoft/Windows-appsample-photo-lab
-
好的,看看我能不能帮忙,
GridView应该有多少个项目?