0
我有下面這段XAML代碼:問題與彈出過的ItemsControl中的Windows Phone 8.1
<Grid Grid.Row="1" x:Name="ContentRoot" Margin="19,9.5,19,0">
<ScrollViewer>
<ItemsControl ItemsSource="{Binding History}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Tapped="HistoryItemTapped">
<FlyoutBase.AttachedFlyout>
<Flyout>
<StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<ScrollViewer>
<TextBlock Foreground="{ThemeResource PhoneMidBrush}" FontSize="{ThemeResource TextStyleExtraLargeFontSize}" HorizontalAlignment="Left" Text="{Binding Expression}" />
</ScrollViewer>
<ScrollViewer>
<TextBlock FontSize="{ThemeResource TextStyleExtraLargePlusFontSize}" HorizontalAlignment="Right" Text="{Binding Result}" />
</ScrollViewer>
</StackPanel>
</Flyout>
</FlyoutBase.AttachedFlyout>
<TextBlock Foreground="{ThemeResource PhoneMidBrush}" FontSize="{ThemeResource TextStyleExtraLargeFontSize}" HorizontalAlignment="Left" Text="{Binding Expression}"
TextTrimming="CharacterEllipsis"/>
<TextBlock FontSize="{ThemeResource TextStyleExtraLargePlusFontSize}" HorizontalAlignment="Right" Text="{Binding Result}"
TextTrimming="CharacterEllipsis"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</Grid>
有兩個問題我解決不了:
彈出按鈕是
private void HistoryItemTapped(object sender, TappedRoutedEventArgs e) { FlyoutBase.GetAttachedFlyout((FrameworkElement)sender).ShowAt((FrameworkElement)sender); }
但是,無論我怎麼設置它總是顯示在屏幕頂部的彈出,沒有○:在上一個項目顯示竊聽發掘挖掘物品。爲什麼?
該彈出窗口在單獨的ScrollViewers上包含兩個TextBlocks。其中一個文本超出了彈出窗口的寬度,但滾動查看器看起來沒有工作(我無法水平滾動文本塊)。這是爲什麼?
好......那麼,什麼是'FlyoutBase.ShowAt'應該做的,如果在同一個地方的屏幕始終顯示彈出? – Spook 2014-10-17 19:55:13
啊啊對不起,可以看到如何可能會被誤解,而不是屏幕,你剛剛設置錯了,檢查像[這裏](http://stackoverflow.com/questions/23606049/flyout-showat-argumentexception基於內容的) – 2014-10-17 19:59:46
您能否引導我如何解決代碼在單個項目上顯示彈出窗口而不是在屏幕頂部? – Spook 2014-10-17 20:02:28