Windows Runtime: How to set image in a ellipse shape button?

前端 未结 4 1121
滥情空心
滥情空心 2021-01-25 18:50
相关标签:
4条回答
  • 2021-01-25 19:16

    Try it. After this modify you can set image to content. This changes you can made at XAML and runtime.

          <Button Content="C:\Round.JPG">
                <Button.Template>
                    <ControlTemplate>
                        <Ellipse x:Name="ellipsePicture" Width="150" Height="150" Stroke="White" StrokeThickness="10">
                            <Ellipse.Fill>
                                <ImageBrush ImageSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type Button}},
                                                              Path=Content}"/>
                            </Ellipse.Fill>
                        </Ellipse>
                    </ControlTemplate>
                </Button.Template>
            </Button>
    
    0 讨论(0)
  • 2021-01-25 19:29

    Try the following code..

    <Button x:Name="BtnProfilePicture" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10">
                <Button.Template>
                    <ControlTemplate>
                        <Grid Height="100">
                            <Ellipse x:Name="ellipsePicture" Fill="{TemplateBinding Background}"/>
                        </Grid>
                    </ControlTemplate>
                </Button.Template>
            </Button >
    

    On your code behind add the following line..

    BtnProfilePicture.BackgroundImage = 
               new ImageBrush { ImageSource = LoadBackgroundImage(yourfilename.jpg)};
    

    Vote me if this works!

    0 讨论(0)
  • 2021-01-25 19:30

    You can use Background property of the button to set image on the background.You can use it from code behind also like:

    public BitmapImage LoadBackgroundImage(string fileName)
    {
                var image = new BitmapImage();
                try
                {
                    image.BeginInit();
                    if (!string.IsNullOrEmpty(fileName) && File.Exists(fileName))
                    {
                        var bytes = File.ReadAllBytes(fileName);
                        image.StreamSource = new MemoryStream(bytes);
                    }
                    else
                    {
                        var bytes = File.ReadAllBytes(Path.GetFullPath(Properties.Resources.DefaultBackgroundImage));
                        image.StreamSource = new MemoryStream(bytes);
                    }
                    image.CacheOption = BitmapCacheOption.OnLoad;
                    image.EndInit();
                    image.Freeze();
                }
                catch (FileNotFoundException ex)
                {
                      throw ex;
                }
    
                return image;
            }
    

    in your button click event add the following line

    btnProfilePicture.Background=LoadBackgroundImage(yourfilename.jpg); //you can use .jpg,.jpeg,*.png

    0 讨论(0)
  • 2021-01-25 19:34

    Try this:

    <Button x:Name="btnProfilePicture" HorizontalAlignment="Center" Click="btnProfilePicture_Click">
    <Button.Template>
        <ControlTemplate>
            <Ellipse x:Name="ellipsePicture" Width="150" Height="150" Stroke="White" StrokeThickness="10">
                <Ellipse.Fill>
                    <ImageBrush ImageSource="/DessCol;component/Images/Recommencer.ico"/>
                </Ellipse.Fill>
            </Ellipse>
        </ControlTemplate>
    </Button.Template>
    

    0 讨论(0)
提交回复
热议问题