我有一个大图像,用户可以(水平地)滚动浏览。我想使图像的某些部分可滚动。任何人都可以指出我最好的方法吗?我想知道Expression Blend是否是实现这一目标的好工具。 Haven根本找不到任何关于此的文件。
其他细节: 墙上有一幅图像(水平可滚动),上面有各种画作。当用户水平滚动时,显示包含更多绘画的墙壁的其余部分。我希望用户点击每个绘画以显示有关该绘画的信息。
非常感谢任何帮助,谢谢!
更新:
Windows应用程序是用C#编写的,下面是XAML:
<Page
x:Class="ProjectName.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:McCannWallHistory"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Name="gMain" Background="White">
<StackPanel Orientation="Vertical" PointerMoved="OnPointerMoved" Name="spMain">
<TextBlock Name="McCann" Text="McCann" HorizontalAlignment="Center" FontSize="60" Foreground="Black" FontWeight="Bold" FontFamily="/fonts/FuturaStd-Bold.otf#Futura Std Book" Margin="0, 40,0,0"></TextBlock>
<TextBlock Name="NY" Text="McCann" HorizontalAlignment="Center" FontSize="34" Foreground="Black" FontWeight="Normal" FontFamily="/fonts/Futura-Medium.ttf#FuturaStdBook" Margin="0, 0,0,15"></TextBlock>
<StackPanel>
<ScrollViewer ZoomMode="Disabled" Name="svMain" VerticalScrollBarVisibility="Hidden" VerticalScrollMode="Disabled" VerticalAlignment="Bottom"
HorizontalScrollBarVisibility="Hidden" HorizontalScrollMode="Enabled">
<Image Name="imgMain" Source="assets/Wall.jpg" Height="816" Width="4828.00"></Image>
</ScrollViewer>
</StackPanel>
<TextBlock Name="txt"></TextBlock>
</StackPanel>
</Grid>
</Page>
下面是C#代码,我在其中创建一个透明矩形,围绕图像中的单个区域并使其可点击&#34;但是当用户滚动该区域时,该区域仍然存在并且&#34;错误&# 34;部分是&#34;可点击的&#34;。
public MainPage()
{
this.InitializeComponent();
//Centering the scrollViewer Horizontally
var period = TimeSpan.FromMilliseconds(10);
Windows.System.Threading.ThreadPoolTimer.CreateTimer(async (source) =>
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
var Succes = svMain.ChangeView(1615, null, null);
});
}, period);
//Setting a clickable rectangle over a section of the image
Rectangle r = new Rectangle();
r.Tag = "Sample Tag Info";
r.Stroke = new SolidColorBrush(Colors.Red);
r.Fill = new SolidColorBrush(Colors.Red);
r.Clip = new RectangleGeometry();
r.Clip.Rect = new Rect(292, 140, 365, 192);
gMain.Children.Add(r);
}