IsEnabled को हटाने और टेक्स्टबॉक्स को केवल पढ़ने के रूप में सेट करने से आप पाठ का चयन करने की अनुमति देंगे लेकिन उपयोगकर्ता इनपुट को रोक देंगे।
IsReadOnly="True"
इस दृष्टिकोण के साथ ही मुद्दा यह है कि हालांकि तो टेक्स्ट बॉक्स यह अभी भी दिखेगा 'सक्षम' में टाइप करने में सक्षम नहीं होगा है।
उस दौर को पाने के लिए (यदि आप चाहते हैं?) आप टेक्स्ट को हल्का करने और पृष्ठभूमि को अंधेरा करने के लिए एक शैली जोड़ सकते हैं (इसे अक्षम दिखने के लिए)।
मैंने एक उदाहरण के साथ निम्नलिखित उदाहरण जोड़ा है जो अक्षम और सक्षम दिखने के बीच टेक्स्टबॉक्स को फ्लिक कर देगा।
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Background" Value="LightGray" />
</Trigger>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Foreground" Value="DarkGray" />
</Trigger>
<Trigger Property="IsReadOnly" Value="False">
<Setter Property="Background" Value="White" />
</Trigger>
<Trigger Property="IsReadOnly" Value="False">
<Setter Property="Foreground" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<TextBox Height="23" Margin="25,22,133,0" IsReadOnly="True" Text="monkey" Name="textBox1" VerticalAlignment="Top" />
<Button Height="23" Margin="25,51,133,0" Name="button1" VerticalAlignment="Top" Click="button1_Click">Button</Button>
</Grid>
private void button1_Click(object sender, RoutedEventArgs e)
{
textBox1.IsReadOnly = !textBox1.IsReadOnly;
}
स्रोत
2009-07-27 07:22:01
मैंने 'selectAll()' का उपयोग किया और फिर यह आपको सामग्री को दायाँ क्लिक करने और कॉपी करने में सक्षम बनाता है। – EricG