2014-02-17 19 views
0

在我的wpf應用示例中,我向窗口添加了一個按鈕和一個彈出窗口。該按鈕位於右下角,彈出窗口已爲其設置了「PlacementTarget」屬性,並將「Placement」設置爲頂部。彈出窗口包含一個非常長的文本塊。WPF:Popup中的文本塊文本在主窗口之外

我期望這個彈出窗口的行爲不是走出窗口,因此自動將其「Horizo​​ntalOffset」設置爲適當的值,但彈出窗口違反了我的意圖。

enter image description here

這是我的XAML文件:

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WpfApplication1" x:Name="window" x:Class="WpfApplication1.MainWindow" 
    Title="MainWindow" Height="350" Width="525"> 
<Window.Resources> 
    <local:Converters x:Key="Converters"/> 
</Window.Resources> 
<Grid> 
    <Button x:Name="button" Content="Button" VerticalAlignment="Bottom" Width="75" HorizontalAlignment="Right"/> 
    <Popup Placement="Top" PlacementTarget="{Binding ElementName=button, Mode=OneWay}" IsOpen="True"> 
     <TextBlock TextWrapping="Wrap" Text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" Background="White"/> 
    </Popup> 
</Grid> 

不要任何人知道如何解決它? 我讀過這應該是默認彈出行爲來照顧走出界限,但不是在我的情況。提前致謝。

+0

這並不適用於'Popup',但你可以使用['TextBlock.TextTrimming'(HTTP:// MSDN。用於*'TextBlock' *的microsoft.com/en-us/library/system.windows.controls.textblock.texttrimming.aspx)。 MSDN引用:'獲取或設置內容溢出內容區域時使用的文本修剪行爲。 –

+0

我只在這個例子中使用了TextBlock。在實際的情況下,Popup的內容將是一些按鈕的堆疊面板。 –

回答

0

您是否嘗試過設置Popup或Textblock的寬度?

對不起,我不能寫這個可憐的答案評論..

+0

此屬性必須設置爲「自動」,因爲該用戶可以通過原始應用程序中的另一個按鈕放大和縮小整個內容。 編輯:我可以將它設置爲按鈕的寬度,但它是醜陋的解決方案,當彈出有大量的內容,需要廣泛。 –

+0

另一個愚蠢的答案:你試過horizo​​ntalalignment =「對」? –