2016-07-11 60 views
0

我想創建帶有圖像的TextBox。這是我曾嘗試:帶有WPF圖像圖標的文本框

<DockPanel Grid.Row="1" Grid.Column="1" Margin="5" > 
    <Image DockPanel.Dock="Left" Source="D:\my_backup\WPF\SALIENT\SALIENT\Images\d2.PNG" Width="20" Height="20"></Image> 
     <TextBox Text="test" FontSize="16" HorizontalAlignment="Stretch" Background="Transparent"          
     </TextBox> 
</DockPanel> 

這給了我這樣的輸出:img

,但我想裏面TextBox像這樣img

任何人都可以幫忙嗎?

+0

你見過這個嗎? http://stackoverflow.com/questions/8070906/how-to-set-image-in-textbox-in-wpf – CiccioRocca

+0

是的,我試過這個..但在那case.my文字是通過圖像 –

回答

2

你可以使用這種實現。 你應該可以讓用戶控制它。

<Border BorderBrush="Black" 
      BorderThickness="2" 
      VerticalAlignment="Center" 
      CornerRadius="5"> 

     <StackPanel Margin="5" 
        Orientation="Horizontal"> 

      <Image Source="C:\SourceOfTheImage\Path\Image.png" 
        Height="18"/> 
      <TextBlock Text="Hello, I am a text block!" 
         Margin="3 0 0 0"/> 

     </StackPanel> 


    </Border> 

看起來這對我來說

+0

多數民衆贊成在fr我工作。謝謝 –

0

試試這個:

<Border Padding="5" BorderThickness="2,2,2,2" BorderBrush="Gray" CornerRadius="2,2,2,2"> 
    <DockPanel Grid.Row="1" Grid.Column="1" Margin="5" > 
     <Image DockPanel.Dock="Left" Source="D:\my_backup\WPF\SALIENT\SALIENT\Images\d2.PNG" Width="20" Height="20"></Image> 
     <TextBox Text="test" FontSize="16" HorizontalAlignment="Stretch" Background="Transparent" BorderBrush="Transparent" ></TextBox> 
    </DockPanel> 
</Border> 

這將是這樣做的簡單的一次性的方式。 您可以將其轉儲到UserControl以供重用。

實現此目的的第二種方法是打開TextBox模板並將其圖標放在TextBox的組成部分中,這樣可以避免需要DockPanel和Border在這裏,以及允許您使模板成爲您未來可以輕鬆附加到任何文本框的資源。