2011-05-21 24 views
6
<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Background="Black"> 
    <!-- Rounded yellow border --> 
    <Border BorderThickness="3" BorderBrush="Yellow" CornerRadius="10" Padding="2" 
     HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <Grid> 
     <!-- Rounded mask (stretches to fill Grid) --> 
     <Border Name="mask" Background="White" CornerRadius="7"/> 
     <!-- Main content container --> 
     <StackPanel> 
      <!-- Use a VisualBrush of 'mask' as the opacity mask --> 
      <StackPanel.OpacityMask> 
       <VisualBrush Visual="{Binding ElementName=mask}"/> 
      </StackPanel.OpacityMask> 
      <!-- Any content --> 
      <Image Source="http://chriscavanagh.files.wordpress.com/2006/12/chriss-blog-banner.jpg"/> 
      <Rectangle Height="50" Fill="Red"/> 
      <Rectangle Height="50" Fill="White"/> 
      <Rectangle Height="50" Fill="Blue"/> 
     </StackPanel> 
     </Grid> 
    </Border> 
</Page> 

XAML Đây là từ WPF – Easy rounded corners for anything nhưng nó không hoạt động tạo cho tôi = (WPF: Tròn-Corners Images

<Border Canvas.Left="55" 
     Canvas.Top="30" 
     Width="100" 
     Height="Auto" 
     Margin="12,12,8,0" 
     VerticalAlignment="Top" 
     BorderBrush="#FF3B5998" 
     BorderThickness=".5" 
     CornerRadius="18"> 
    <Border.Effect> 
     <DropShadowEffect BlurRadius="5" 
          Opacity=".5" 
          ShadowDepth="3" /> 
    </Border.Effect> 
    <Border Name="ReceiverColor" 
      BorderBrush="#FF96B2E4" 
      BorderThickness="6" 
      CornerRadius="15"> 
     <Border Name="Mask" 
       BorderBrush="#FF3B5998" 
       BorderThickness=".5" 
       CornerRadius="13"> 
       <StackPanel> 
        <StackPanel.OpacityMask> 
         <VisualBrush Visual="{Binding ElementName=Mask}" /> 
        </StackPanel.OpacityMask> 
        <Image Name="Receiver" /> 
       </StackPanel> 
     </Border> 
    </Border> 
</Border> 

--- EDIT ---
tôi làm cho biên giới kích thước để tự động và thay đổi nguồn hình ảnh thành hình ảnh từ liên kết
khi kích thước đường viền được tải cửa sổ trở thành kích thước hình ảnh nhưng hình ảnh không được hiển thị !!!

+2

không là gì làm việc ...? – biju

Trả lời

15

Bạn quên lưới làm cho anh đeo mặt nạ và anh chị em hình ảnh và lồng hình ảnh vào mặt nạ. và bạn quên đặt nền của mặt nạ.

này hoạt động:

<Grid> 
    <Border Canvas.Left="55" 
      Canvas.Top="30" 
      Width="100" 
      Height="Auto" 
      Margin="12,12,8,0" 
      VerticalAlignment="Top" 
      BorderBrush="#FF3B5998" 
      BorderThickness=".5" 
      CornerRadius="18"> 
     <Border.Effect> 
      <DropShadowEffect BlurRadius="5" 
           Opacity=".5" 
           ShadowDepth="3" /> 
     </Border.Effect> 
     <Border Name="ReceiverColor" 
       BorderBrush="#FF96B2E4" 
       BorderThickness="6" 
       CornerRadius="15"> 
      <Grid> 
       <Border Name="Mask" 
         Background="White" 
         BorderBrush="#FF3B5998" 
         BorderThickness=".5" 
         CornerRadius="13"> 
       </Border> 
       <StackPanel> 
        <Image Name="Receiver" 
          Source="/Images/test.jpg" /> 
        <StackPanel.OpacityMask> 
         <VisualBrush Visual="{Binding ElementName=Mask}" /> 
        </StackPanel.OpacityMask> 
       </StackPanel> 
      </Grid> 
     </Border> 
    </Border> 
</Grid> 
+0

Không có mã đầu tiên là từ bài viết nhưng mã thứ hai là từ dự án của tôi –

+2

@Ahmed Adel, Đã sửa lỗi. –

+0

đã làm việc cho tôi, rất tốt. – chengzi

4

trong WPF này làm việc cho tôi

<Ellipse Width="50" Height="50"> 
     <Ellipse.Fill> 
      <ImageBrush ImageSource="http://chriscavanagh.files.wordpress.com/2006/12/chriss-blog-banner.jpg" /> 
     </Ellipse.Fill> 
    </Ellipse> 
+0

Giải pháp này không kiểm soát được bán kính thực tế - và bạn mất quyền kiểm soát đối với hình ảnh thực tế. Đó là giải pháp tốt nếu bạn cần một Ellipse - nhưng đó không phải là điều tương tự như góc tròn như các câu hỏi yêu cầu. –

Các vấn đề liên quan