চিত্র সহ ডাব্লুপিএফ বোতাম


108

আমি ডাব্লুপিএফ-এর একটি বোতামে একটি চিত্র সংযুক্ত করার চেষ্টা করছি, তবে এই কোডটি ব্যর্থ। অনুরূপ কোড মোজিলা XUL এ পুরোপুরি কাজ করবে বলে অদ্ভুত বলে মনে হচ্ছে।

<Button Height="49.086" Margin="3.636,12,231.795,0" Name="button2" 
        VerticalAlignment="Top" Grid.Column="1" Click="button2_Click" 
        Source="Pictures/apple.jpg">Disconnect from Server</Button>

উত্তর:


234

পরিবর্তে আপনি এর মতো কিছু করতে চান:

<Button>
    <StackPanel>
        <Image Source="Pictures/apple.jpg" />
        <TextBlock>Disconnect from Server</TextBlock>
    </StackPanel>
</Button>

5
প্রজেক্টে আপেল.জেপিজি যুক্ত করতে ভুলবেন না। (অ্যাকশন তৈরি করুন: রিসোর্স)
ওয়াটবিউবারিফ

3
এটি একটি খুব খারাপ সমাধান কারণ আপনি বোতামটি অক্ষম করার সময় পাঠ্য এবং চিত্রটি ধূসর হবে না ।
লক

5
@ নমলক আপনার সমাধানটি কোথায়?
মেটিটাস

আপনি কেবল একটি চিত্র যুক্ত করতে চাইলে এটি কাজ করবে না। আমার এই কাজটি পেতে স্ট্যাকপ্যানেলটি সরিয়ে ফেলা এবং বোতামের সামগ্রী হিসাবে চিত্রটি যুক্ত করা দরকার। আমি এটি পরীক্ষা করিনি, তবে যদি কোনও চিত্র এবং পাঠ্য চায় তবে এটিই যেতে পারে।
ওনসকুমারু

আপনার প্রকল্পটিতে চিত্রটি যুক্ত করা থাকলে আপনি এটি থেকে সমাধান এক্সপ্লোরারটি xaml সম্পাদকের কাছে টেনে আনতে পারেন এবং এটি চিত্রটির পুরো পথের পাঠ্যটিতে প্রবেশ করবে।
পল ম্যাকার্থি

11

পূর্ণ বোতামে চিত্র প্রসারিত করার আরেকটি উপায়। নীচের কোড চেষ্টা করতে পারেন।

<Grid.Resources>
  <ImageBrush x:Key="AddButtonImageBrush" ImageSource="/Demoapp;component/Resources/AddButton.png" Stretch="UniformToFill"/>
</Grid.Resources>

<Button Content="Load Inventory 1" Background="{StaticResource AddButtonImageBrush}"/> 

এখান থেকে রেফার করা

এছাড়াও এটি অন্যকে সাহায্য করতে পারে। আমি এখানে মাউসওভার অপশনের সাথে একই পোস্ট করেছি ।


2
<Button x:Name="myBtn_DetailsTab_Save" FlowDirection="LeftToRight"  HorizontalAlignment="Left" Margin="835,544,0,0" VerticalAlignment="Top"  Width="143" Height="53" BorderBrush="#FF0F6287" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontFamily="B Titr" FontSize="15" FontWeight="Bold" BorderThickness="2" Click="myBtn_DetailsTab_Save_Click">
    <StackPanel HorizontalAlignment="Stretch" Background="#FF1FB3F5" Cursor="Hand" >
        <Image HorizontalAlignment="Left"  Source="image/bg/Save.png" Height="36" Width="124" />
        <TextBlock HorizontalAlignment="Center" Width="84" Height="22" VerticalAlignment="Top" Margin="0,-31,-58,0" Text="ثبت مشتری" />
    </StackPanel>
</Button>

1
আপনার উত্তরটি ব্যাখ্যা করা উচিত, কখনও কখনও কেবল
কোডগুলি

যদি এই বোতামটি ব্যবহার করে থাকেন তবে আপনার এই ত্রুটিটি রয়েছে "পর্যবেক্ষণযোগ্য সংগ্রহের ধরণের সংগ্রহ বা অভিধানে 'ডেটাগ্রিডটেক্সটকমলন' প্রকারের মান যুক্ত করা যায় না" বা অনুরূপ ত্রুটি আপনি শৈলীর জোরে জোরে জোরে জোরে জোরে জোরে জোরে জোরে জোরে জোরে জোরে জোড়ায়…> <ডেটাগ্রিড.সংশ্লিষ্ট> <শৈল x: কী = " শিরোনাম স্টাইল "টার্গেটটাইপ =" ডেটাগ্রিড কলামহিডার "> <সেটার সম্পত্তি =" অনুভূমিক কনটেন্টএলাইনমেন্ট "মান =" কেন্দ্র "/> </ স্টাইল> </ ডেটাগ্রিড.সংশ্লিষ্ট>

ধন্যবাদ, ধন্যবাদ এটি কার্যকর এবং আমার সমস্যার সমাধান হয়েছিল। এবং পার্সিয়ান বাদে অন্যদের জন্য 'জমা দিতে' রেকর্ড বিজ্ঞাপনরীকে পরিবর্তন করতে ভুলবেন না! : ডি
স্টুডিওক্স


0

আপনি একটি কাস্টম নিয়ন্ত্রণ তৈরি করতে পারেন যা বোতাম বর্গ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। এই কোডটি আরও পুনঃব্যবহারযোগ্য হবে, আরও তথ্যের জন্য দয়া করে নীচের ব্লগ পোস্টটি দেখুন: ডাব্লুপিএফ - চিত্র সহ কাস্টম বোতামটি তৈরি করুন (ইমেজবটন)

এই নিয়ন্ত্রণ ব্যবহার:

<local:ImageButton Width="200" Height="50" Content="Click Me!"
    ImageSource="ok.png" ImageLocation="Left" ImageWidth="20" ImageHeight="25" />

ইমেজবটন.সিএস ফাইল:

public class ImageButton : Button
{
   static ImageButton()
   {
       DefaultStyleKeyProperty.OverrideMetadata(typeof(ImageButton), new FrameworkPropertyMetadata(typeof(ImageButton)));
   }

   public ImageButton()
   {
       this.SetCurrentValue(ImageButton.ImageLocationProperty, WpfImageButton.ImageLocation.Left);
   }

   public int ImageWidth
   {
       get { return (int)GetValue(ImageWidthProperty); }
       set { SetValue(ImageWidthProperty, value); }
   }

   public static readonly DependencyProperty ImageWidthProperty =
       DependencyProperty.Register("ImageWidth", typeof(int), typeof(ImageButton), new PropertyMetadata(30));

   public int ImageHeight
   {
       get { return (int)GetValue(ImageHeightProperty); }
       set { SetValue(ImageHeightProperty, value); }
   }

   public static readonly DependencyProperty ImageHeightProperty =
       DependencyProperty.Register("ImageHeight", typeof(int), typeof(ImageButton), new PropertyMetadata(30));

   public ImageLocation? ImageLocation
   {
       get { return (ImageLocation)GetValue(ImageLocationProperty); }
       set { SetValue(ImageLocationProperty, value); }
   }

   public static readonly DependencyProperty ImageLocationProperty =
       DependencyProperty.Register("ImageLocation", typeof(ImageLocation?), typeof(ImageButton), new PropertyMetadata(null, PropertyChangedCallback));

   private static void PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
   {
       var imageButton = (ImageButton)d;
       var newLocation = (ImageLocation?) e.NewValue ?? WpfImageButton.ImageLocation.Left;

       switch (newLocation)
       {
           case WpfImageButton.ImageLocation.Left:
               imageButton.SetCurrentValue(ImageButton.RowIndexProperty, 1);
               imageButton.SetCurrentValue(ImageButton.ColumnIndexProperty, 0);
               break;
           case WpfImageButton.ImageLocation.Top:
               imageButton.SetCurrentValue(ImageButton.RowIndexProperty, 0);
               imageButton.SetCurrentValue(ImageButton.ColumnIndexProperty, 1);
               break;
           case WpfImageButton.ImageLocation.Right:
               imageButton.SetCurrentValue(ImageButton.RowIndexProperty, 1);
               imageButton.SetCurrentValue(ImageButton.ColumnIndexProperty, 2);
               break;
           case WpfImageButton.ImageLocation.Bottom:
               imageButton.SetCurrentValue(ImageButton.RowIndexProperty, 2);
               imageButton.SetCurrentValue(ImageButton.ColumnIndexProperty, 1);
               break;
           case WpfImageButton.ImageLocation.Center:
               imageButton.SetCurrentValue(ImageButton.RowIndexProperty, 1);
               imageButton.SetCurrentValue(ImageButton.ColumnIndexProperty, 1);
               break;
           default:
               throw new ArgumentOutOfRangeException();
       }
   }

   public ImageSource ImageSource
   {
       get { return (ImageSource)GetValue(ImageSourceProperty); }
       set { SetValue(ImageSourceProperty, value); }
   }

   public static readonly DependencyProperty ImageSourceProperty =
       DependencyProperty.Register("ImageSource", typeof(ImageSource), typeof(ImageButton), new PropertyMetadata(null));

   public int RowIndex
   {
       get { return (int)GetValue(RowIndexProperty); }
       set { SetValue(RowIndexProperty, value); }
   }

   public static readonly DependencyProperty RowIndexProperty =
       DependencyProperty.Register("RowIndex", typeof(int), typeof(ImageButton), new PropertyMetadata(0));

   public int ColumnIndex
   {
       get { return (int)GetValue(ColumnIndexProperty); }
       set { SetValue(ColumnIndexProperty, value); }
   }

   public static readonly DependencyProperty ColumnIndexProperty =
       DependencyProperty.Register("ColumnIndex", typeof(int), typeof(ImageButton), new PropertyMetadata(0));
}

public enum ImageLocation
{
   Left,
   Top,
   Right,
   Bottom,
   Center
}

জেনেরিক.এক্সএএমএল ফাইল:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfImageButton">
    <Style TargetType="{x:Type local:ImageButton}" BasedOn="{StaticResource {x:Type Button}}">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Image Source="{Binding ImageSource, RelativeSource={RelativeSource AncestorType=local:ImageButton}}"
                               Width="{Binding ImageWidth, RelativeSource={RelativeSource AncestorType=local:ImageButton}}"
                               Height="{Binding ImageHeight, RelativeSource={RelativeSource AncestorType=local:ImageButton}}"
                               Grid.Row="{Binding RowIndex, RelativeSource={RelativeSource AncestorType=local:ImageButton}}"
                               Grid.Column="{Binding ColumnIndex, RelativeSource={RelativeSource AncestorType=local:ImageButton}}"
                               VerticalAlignment="Center" HorizontalAlignment="Center"></Image>
                        <ContentPresenter Grid.Row="1" Grid.Column="1" Content="{TemplateBinding Content}"
                                          VerticalAlignment="Center" HorizontalAlignment="Center"></ContentPresenter>
                    </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

0

সর্বাধিক সহজ পদ্ধতির ইমেজ ট্যাগ ব্যবহার করা হবে।

<Button Name="btn" Width="26" Height="26" Click="btnClick"> 
   <Image Source="Resource/btn-icon.png"/>
</Button>

ধরুন আপনার ইমেজ ফাইলটি রিসোর্স ফোল্ডারে যুক্ত হয়েছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.