একটি পাঠ্যব্লকটিতে পাঠ্য বিন্যাস করা


104

আমি কীভাবে TextBlockআমার ডাব্লুপিএফ অ্যাপ্লিকেশনটিতে একটি নিয়ন্ত্রণের মধ্যে একটি পাঠ্যের বিন্যাস অর্জন করতে পারি ?

উদাহরণস্বরূপ: আমি গা bold় কিছু নির্দিষ্ট শব্দ থাকতে চাই, অন্যটি তির্যকগুলিতে এবং কিছু বিভিন্ন বর্ণে উদাহরণস্বরূপ:

এখানে চিত্র বর্ণনা লিখুন

আমার প্রশ্নের পিছনে কারণ হ'ল এই আসল সমস্যা:

lblcolorfrom.Content = "Colour From: " + colourChange.ElementAt(3).Value.ToUpper();

আমি স্ট্রিংয়ের দ্বিতীয় অংশটি সাহসী হতে চাই এবং আমি জানি যে আমি দুটি নিয়ন্ত্রণ (লেবেল, টেক্সটব্লকস, ইত্যাদি) ব্যবহার করতে পারি তবে ইতিমধ্যে ব্যবহারের প্রচুর পরিমাণে নিয়ন্ত্রণের কারণে আমি তা চাই না।

উত্তর:


139

আপনার ব্যবহার করা দরকার Inlines:

<TextBlock.Inlines>
    <Run FontWeight="Bold" FontSize="14" Text="This is WPF TextBlock Example. " />
    <Run FontStyle="Italic" Foreground="Red" Text="This is red text. " />
</TextBlock.Inlines>

বাইন্ডিং সহ:

<TextBlock.Inlines>
    <Run FontWeight="Bold" FontSize="14" Text="{Binding BoldText}" />
    <Run FontStyle="Italic" Foreground="Red" Text="{Binding ItalicText}" />
</TextBlock.Inlines>

আপনি অন্যান্য বৈশিষ্ট্যগুলিও আবদ্ধ করতে পারেন:

<TextBlock.Inlines>
    <Run FontWeight="{Binding Weight}"
         FontSize="{Binding Size}"
         Text="{Binding LineOne}" />
    <Run FontStyle="{Binding Style}"
         Foreground="Binding Colour}"
         Text="{Binding LineTwo}" />
</TextBlock.Inlines>

আপনার যদি বুলিয়ান (বলুন) হিসাবে সাহসী থাকে তবে আপনি রূপান্তরকারীদের মাধ্যমে বাঁধতে পারেন।


98

আপনি এক্সএএমএলে খুব সহজেই এটি করতে পারেন:

<TextBlock>
  Hello <Bold>my</Bold> faithful <Underline>computer</Underline>.<Italic>You rock!</Italic>
</TextBlock>

চমৎকার! এক্সএএমএল এরকম নির্মাণগুলিকে সমর্থন করার মত কোনও ধারণা আমার ছিল না।
অ্যালন গুরালেনেক

6
এই সমর্থন বাঁধাই না?
আর্সেন এমক্র্টচায়ান

11
@ আর্সেনমকর্ট কীভাবে: <টেক্সটব্লক ফন্টওয়েট = "বোল্ড" পাঠ্য = "
inding

2
@ অ্যাথেরিক্স আমি এটি কাজ করতে পারি না। আমি qqbenq থেকে এই ব্যবহার: <TextBlock> <বোল্ড> £ </ বোল্ড> <চালান FontWeight = "বোল্ড" পাঠ্য = "{MonthlyPayment বাঁধাই}" /> </ TextBlock> মাসিক ঋণ পরিশোধের
নাম Gail Foad

49

বিভিন্ন হয় Inlineউপাদান আছে যা আপনাকে সহায়তা করতে পারে, সহজ বিন্যাসন বিকল্পগুলি আপনি ব্যবহার করতে পারেন জন্য Bold, Italicএবং Underline:

<TextBlock>
    Sample text with <Bold>bold</Bold>, <Italic>italic</Italic> and <Underline>underlined</Underline> words.
</TextBlock>

এখানে চিত্র বর্ণনা লিখুন

আমার মনে হয় এটা মূল্য লক্ষ হয়, যে যারা উপাদান ঠিক shorthands আসলে হয় Spanসেট বিভিন্ন বৈশিষ্ট্য সঙ্গে উপাদানের (যেমন: এর জন্য Bold, FontWeightসম্পত্তি হিসাবে সেট করা FontWeights.Bold)।

এটি আমাদের পরবর্তী বিকল্পে নিয়ে আসে: পূর্বোক্ত Spanউপাদান।

আপনি উপরের মতো এই উপাদানটির সাথে একই প্রভাব অর্জন করতে পারেন তবে আপনাকে আরও বেশি সম্ভাবনা দেওয়া হয়; আপনি (অন্যদের মধ্যে) Foregroundবা Backgroundবৈশিষ্ট্যগুলি সেট করতে পারেন :

<TextBlock>
    Sample text with <Span FontWeight="Bold">bold</Span>, <Span FontStyle="Italic">italic</Span> and <Span TextDecorations="Underline">underlined</Span> words. <Span Foreground="Blue">Coloring</Span> <Span Foreground="Red">is</Span> <Span Background="Cyan">also</Span> <Span Foreground="Silver">possible</Span>.
</TextBlock>

এখানে চিত্র বর্ণনা লিখুন

Spanউপাদান এই মত অন্যান্য উপাদান থাকতে পারে:

<TextBlock>
    <Span FontStyle="Italic">Italic <Span Background="Yellow">text</Span> with some <Span Foreground="Blue">coloring</Span>.</Span>
</TextBlock>

এখানে চিত্র বর্ণনা লিখুন

আরও একটি উপাদান রয়েছে, যা এর সাথে বেশ মিল Span, একে বলা হয় RunRunঅন্যান্য ইনলাইন উপাদানগুলোর থাকার ধারণ করতে পারে না Spanপারেন, কিন্তু আপনি সহজেই করতে পারেন বাধতে একটি পরিবর্তনশীল Runএর Textসম্পত্তি:

<TextBlock>
    Username: <Run FontWeight="Bold" Text="{Binding UserName}"/>
</TextBlock>

এখানে চিত্র বর্ণনা লিখুন

এছাড়াও, আপনি যদি পছন্দ করেন তবে কোড-পেছন থেকে পুরো ফর্ম্যাটিংটি করতে পারেন:

TextBlock tb = new TextBlock();
tb.Inlines.Add("Sample text with ");
tb.Inlines.Add(new Run("bold") { FontWeight = FontWeights.Bold });
tb.Inlines.Add(", ");
tb.Inlines.Add(new Run("italic ") { FontStyle = FontStyles.Italic });
tb.Inlines.Add("and ");
tb.Inlines.Add(new Run("underlined") { TextDecorations = TextDecorations.Underline });
tb.Inlines.Add("words.");

44

চার্লস পেটজোল্ডস বুল অ্যাপ্লিকেশন = কোড + মার্কআপ থেকে এই উদাহরণটি দেখুন

//----------------------------------------------
// FormatTheText.cs (c) 2006 by Charles Petzold
//----------------------------------------------
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Documents;

namespace Petzold.FormatTheText
{
    class FormatTheText : Window
    {
        [STAThread]
        public static void Main()
        {
            Application app = new Application();
            app.Run(new FormatTheText());
        }
        public FormatTheText()
        {
            Title = "Format the Text";

            TextBlock txt = new TextBlock();
            txt.FontSize = 32; // 24 points
            txt.Inlines.Add("This is some ");
            txt.Inlines.Add(new Italic(new Run("italic")));
            txt.Inlines.Add(" text, and this is some ");
            txt.Inlines.Add(new Bold(new Run("bold")));
            txt.Inlines.Add(" text, and let's cap it off with some ");
            txt.Inlines.Add(new Bold(new Italic (new Run("bold italic"))));
            txt.Inlines.Add(" text.");
            txt.TextWrapping = TextWrapping.Wrap;

            Content = txt;
        }
    }
}

7

একটি ভাল সাইট, ভাল ব্যাখ্যা সহ:

http://www.wpf-tutorial.com/basic-controls/the-textblock-control-inline-formatting/

এখানে আপনি যা খুঁজছেন তার জন্য লেখক আপনাকে ভাল উদাহরণ দিয়েছেন! ওভেরাল সাইটটি গবেষণামূলক উপাদানের জন্য দুর্দান্ত এবং এটি আপনার ডাব্লুপিএফ-তে প্রচুর বিকল্পগুলি কভার করে

সম্পাদন করা

পাঠ্যটি বিন্যাস করতে বিভিন্ন পদ্ধতি রয়েছে। একটি মৌলিক বিন্যাসের জন্য (আমার মতে সবচেয়ে সহজ):

    <TextBlock Margin="10" TextWrapping="Wrap">
                    TextBlock with <Bold>bold</Bold>, <Italic>italic</Italic> and <Underline>underlined</Underline> text.
    </TextBlock>

উদাহরণ 1 বোল্ড ইটালিক এবং আন্ডারকর্ডেড পাঠ্যের সাথে বুনিয়াদি বিন্যাস দেখায় ।

নীচে স্প্যান পদ্ধতিটি অন্তর্ভুক্ত রয়েছে যার সাথে আপনি এই ভিনটি হাইলাইট করুন:

   <TextBlock Margin="10" TextWrapping="Wrap">
                    This <Span FontWeight="Bold">is</Span> a
                    <Span Background="Silver" Foreground="Maroon">TextBlock</Span>
                    with <Span TextDecorations="Underline">several</Span>
                    <Span FontStyle="Italic">Span</Span> elements,
                    <Span Foreground="Blue">
                            using a <Bold>variety</Bold> of <Italic>styles</Italic>
                    </Span>.
   </TextBlock>

উদাহরণ 2 স্প্যান ফাংশন এবং এর সাথে বিভিন্ন সম্ভাবনা দেখায়।

বিস্তারিত ব্যাখ্যার জন্য সাইটটি দেখুন!

উদাহরণ


যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত উত্তর পরিবর্তিত হলে লিঙ্কযুক্ত উত্তরগুলি অবৈধ হতে পারে। - পর্যালোচনা থেকে
রিচার্ড স্লটার

1
@ মোগসদাদ পোস্টটি সম্পাদনা করেছেন যাতে এটি কোডের উদাহরণগুলি দেখায়
জিলেলেজ

@ রিচার্ডস্ল্যাটার পোস্টটি সম্পাদনা করেছেন যাতে এটি কোডের উদাহরণগুলি দেখায়
জিলেলেজ

0

এটি আমার সমাধান ....

    <TextBlock TextWrapping="Wrap" Style="{DynamicResource InstructionStyle}"> 
        <Run Text="This wizard will take you through the purge process in the correct order." FontWeight="Bold"></Run>
        <LineBreak></LineBreak>
        <Run Text="To Begin, select" FontStyle="Italic"></Run>
        <Run x:Name="InstructionSection" Text="'REPLACED AT RUNTIME'" FontWeight="Bold"></Run>
        <Run Text="from the menu." FontStyle="Italic"></Run>
    </TextBlock>

আমি শিখছি ... সুতরাং উপরের সমাধানটি নিয়ে কারও যদি গণ্ডগোল হয় তবে শেয়ার করুন! :)

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