ডাব্লুপিএফ টেক্সটবক্সের জন্য একাধিক লাইন


364

আমি কিছু প্রতিক্রিয়া প্রেরণের জন্য একটি অ্যাপ্লিকেশন বিকাশ করছি।

মূলত আমি TextBoxমন্তব্য করার জন্য একটি চেষ্টা করার চেষ্টা করছি , তবে আমি উইনফোর্মে অভ্যস্ত MultiLine=true। আমি MinLines3 এ সেট করেছিলাম , যা সেখানে পৌঁছেছে, তবে ব্যবহারকারীরা এই ব্লকের যে কোনও জায়গায় টাইপ করতে সক্ষম হলে পছন্দ করতে চাই - পছন্দ মতো এন্টার টিপুন এবং ডট পয়েন্ট সাজানোর জিনিসটি করুন। উদাহরণ স্বরূপ:

- Item 1        blah
- Item 2                blahlb lahbvl   d

তবে এই মুহুর্তে পাঠ্যটি সমস্ত এক লাইনে থাকে।

- Item 1         blah - Item 2                      blahb blahb blah

এই মন্তব্যগুলি তখন প্রেরিত ইমেলের মূল অংশটি পূরণ করতে সহায়তা করবে। ইমেল বডি স্ট্রিংয়ের মধ্যে এই স্ট্রিংটি রাখার সময় আমি যদি একই ফর্ম্যাটিংটি সহজেই না রাখতে পারি তবে এটি অর্থহীন হতে পারে (যাতে টাইপ করার সময় যেমন পাঠানো হয় তখন এটি এটির মতো দেখায়)।

আমি যা করতে পারি তা কি আমি অর্জন করতে পারি বা আমাকে কী এক লাইনে সমস্ত পাঠ্য হিসাবে রেখে দিতে হবে?

উত্তর:


757

সক্ষম করুন TextWrapping="Wrap"এবং AcceptsReturn="True"আপনার পাঠ্যবক্সে।

আপনি সক্ষম করতে AcceptsTabএবং SpellCheck.IsEnabledখুব ইচ্ছুক হতে পারে ।


1
আরে @ আইটোলসন যদি আমি আপনার পদ্ধতির সাথে মাল্টলাইন পাঠ্যবক্স তৈরি করি তবে এটি আরও ভাল কাজ করতে পারে তবে আমি যদি label1.Content = textBox1.Text.Length;এই লাইনের সাথে পাঠ্যবক্সের পাঠ্য কাউন্টারটি সেট করতে চাই তবে আমি যখন পাঠ্যবক্সের কাউন্টারটিতে এন্টার টিপবো তখন 2 টি অক্ষর বৃদ্ধি পাবে। আমি এই কাজটি কীভাবে করতে পারি দয়া করে আমাকে সহায়তা করুন।
জে শুক্ল

2
এটি ঘটে কারণ নিউলাইনটি দুটি অক্ষর (সিআর / এলএফ)। আপনি যদি এটি একটি একক চরিত্র হিসাবে আচরণ করতে চান তবে এর মতো কিছু করুন textBox1.Text.Replace("\r\n", " ").Length। সতর্ক থাকুন: যদি এটি ব্যবহারকারীর প্রতিক্রিয়া হিসাবে বোঝানো হয় কারণ আপনার পিছনের শেষটি অক্ষরের সংখ্যা সীমাবদ্ধ করে, আপনার সিআর / এলএফ দুটি অক্ষর হিসাবে গণনা করতে হতে পারে যদি পিছনের প্রান্তটি এভাবেই গণনা করে!
itowlson


1
এছাড়াও নিশ্চিত হয়ে নিন যে ভার্টিকাল
কনটেন্টএলাইনমেন্টটি স্ট্রেচে

1
স্ক্রোল বারটি পেতে আশেপাশের স্ক্রোলভিয়ার উপাদান যুক্ত করুন।
বোরকো জুরোভিচ

34

এছাড়াও, যদি আমার মতো আপনি সরাসরি এক্সএএমএল-এ নিয়ন্ত্রণ যুক্ত করেন (সম্পাদক ব্যবহার না করে), আপনি হতাশ হতে পারেন যে এটি দুটি উচ্চ বৈশিষ্ট্য নির্ধারণের পরেও এটি উপলব্ধ উচ্চতায় প্রসারিত হবে না।

টেক্সটবক্স প্রসারিত করতে, সেট করুন Height="Auto"

হালনাগাদ:

পূর্ববর্তী ক্ষেত্রে, আমি মনে করি এটি অবশ্যই অ্যাপস সংস্থার কোথাও অ্যাপ্লিকেশনটির জন্য কিছু স্ট্যান্ডার্ডের উচ্চতা নির্দিষ্ট করে পাঠ্যবক্সের জন্য একটি ডিফল্ট শৈলীর জন্য প্রয়োজনীয় ধন্যবাদ ছিল thanks এটি আপনাকে সহায়তা করে যদি এটি পরীক্ষা করা সার্থক হতে পারে।


19

এখানে এমন নমুনা দেওয়া হয়েছে XAMLযা TextBoxমাল্টলাইন পাঠ্যকে গ্রহণ করতে দেয় এবং এটি তার নিজস্ব স্ক্রোলবার ব্যবহার করে:

<TextBox
Height="200"
Width="500"
TextWrapping="Wrap"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto"/>

12

@Andre Luus পক্ষান্তরে সেটিং Height="Auto"করা হবে না TextBoxপ্রসারিত। আমি যে সমাধানটি পেয়েছি তা হ'ল সেট করাVerticalAlignment="Stretch"


1
'ভার্টিকাল অ্যালাইনমেন্ট' এর ডিফল্ট মান হ'ল 'স্ট্রেচ' রেফারেন্স এমএসডিএন । এবং হ্যাঁ, এটি সত্যই আমার পক্ষে কাজ করেছিল। এটি আপনি পাঠ্যবক্সটি যে নিয়ন্ত্রণে রেখেছিলেন তার উপর নির্ভর করে, এটি কি কোনও মান -হীন ছিল?
Andre Luus

1
আরেকটি সম্ভাবনা হ'ল পাঠ্যবক্সের স্কোপটিতে কোথাও সংজ্ঞায়িত টেক্সটবক্সগুলির জন্য আপনার ডিফল্ট স্টাইল রয়েছে যা ভার্টিকালাইগমেন্টের জন্য একটি পৃথক মান সংজ্ঞায়িত করে। আমি স্নুপের সাথে চেক করব।
Andre Luus

1
যদি ধারকটি স্থির করা হয় তবে উচ্চতার অটো কাজ করবে না। উপরে প্রতিটি পিতামাতার ধারক অবশ্যই প্রসারিত করতে সক্ষম হবে। একটি স্ক্রোলবারে মোড়ানোও কাজ করে।
লি লুভিয়ের

5

ডাব্লুপিএফ- এ সম্পর্কিত একমাত্র সম্পত্তি

উইনফর্মস সম্পত্তি:TextBox.Multiline = true

হয় WPF সম্পত্তি: TextBox.AcceptsReturn = true

<TextBox AcceptsReturn="True" ...... />

যেমন অন্যান্য সকল সেটিংস, VerticalAlignement, WordWrapইত্যাদি, শুধুমাত্র নিয়ন্ত্রণ UI 'তে মধ্যে পাঠ্যবাক্স মিথস্ক্রিয়া কিন্তু কোনো প্রভাব পড়ে না Multilineআচরণ।

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