View Full Version : سوال: چند خطی بودن ToolTip
water_lily_2012
شنبه 05 شهریور 1390, 17:44 عصر
سلام
خوب از عنوان سوال معلومه دنبال چی هستم. کسی راهی داره.
خودم در متن از n\ استفاده کردم جواب نداد.
farashah_jalal
یک شنبه 06 شهریور 1390, 07:56 صبح
با سلام
می تونید این جور استفاده کنید.
<TextBox Height="23" HorizontalAlignment="Left" Margin="40,40,0,0" Name="txt" VerticalAlignment="Top" Width="168" >
<TextBox.ToolTip>
<TextBlock TextWrapping="Wrap"></TextBlock>
</TextBox.ToolTip>
</TextBox>
A.Karimi
سه شنبه 08 شهریور 1390, 01:08 صبح
Tootip از جنس Content است و شما میتوانید هر شی WPF ی را داخل آن قرار دهید برای مثال:
<Image ... >
<Image.Tooltip>
<StackPanel>
<TextBlox>First Line</TextBlox>
<TextBlox>Second Line</TextBlox>
</StackPanel>
</Image.Tooltip>
</Image>
و البته جواب قبلی هم کاملاً صحیح و کاربردی بود.
water_lily_2012
یک شنبه 13 شهریور 1390, 17:33 عصر
سلام
من دقیقا متوجه منظور شما نمیشوم. شاید هم برعکس.
اگر از Width استفاده کنم که هر وقت متن بیش از این اندازه شد، متن به چند خط تبدیل میشه. و برای همه ToolTip ها در برنامه صادق هست.
ولی من می خواهم برای ToolTip هر شی به یک صورت و اندازه رفتار کنه.
خودم هم از این کد استفاده کرده ام.
<TextBlock TextWrapping="WrapWithOverflow" Text="{TemplateBinding Content}" Margin="2,2.5,2,5" Foreground="White" FontSize="12" FontFamily="Tahoma" TextAlignment="Center">
<TextBlock.Effect>
<DropShadowEffect ShadowDepth="2" Color="#FF545454"/>
</TextBlock.Effect>
</TextBlock>
water_lily_2012
سه شنبه 15 شهریور 1390, 18:32 عصر
لطفا یکی کمک کنه.
A.Karimi
سه شنبه 15 شهریور 1390, 21:06 عصر
داخل تگ Tooltip از تگهای زیر استفاده کنید:
<FlowDocumentScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden">
<FlowDocument>
<Paragraph>
First Paragraph.
</Paragraph>
<Paragraph>
Second Paragraph.
<LineBreak/>
Again second paragraph but in a new line.
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
اگر با HTML آشنا باشید کار با FlowDocument راحتر از این هم خواهد بود. در کل میتوانید مانور زیادی داشته باشید.
water_lily_2012
چهارشنبه 16 شهریور 1390, 10:16 صبح
داخل تگ Tooltip از تگهای زیر استفاده کنید:
<FlowDocumentScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden">
<FlowDocument>
<Paragraph>
First Paragraph.
</Paragraph>
<Paragraph>
Second Paragraph.
<LineBreak/>
Again second paragraph but in a new line.
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
اگر با HTML آشنا باشید کار با FlowDocument راحتر از این هم خواهد بود. در کل میتوانید مانور زیادی داشته باشید.
سلام
شما کدهایی می نویسید که باید برای هر شی استفاده کرد. مثلا باید در زیر یک دکمه کد شما را نوشت و مقادیر ToolTip را هم در همان کد مشخص کرد. درسته؟
ولی من این را نمی خواهم. من خودم یک ToolTip در Silverlight طراحی کرده ام. قسمت اصلی کدش را هم در بالا نوشتم. وقتی در برنامه خاصیت ToolTip هر شی را مقدار می دهم ToolTip که خودم طراحی کرده ام در کنار شی نمایش داده می شود. اگر به کد توجه کنید می بینید که من خاصیت Text را بایند کرده ام.
می توانم در خاصیت ToolTip هر شی متنی بنویسم و نمایش داده شود. اما من می خواهم که برای بعضی از اشیا متن چند خطی بنویسم. مشکل من اینجاست.
یعنی اگر راهی بود که در خاصیت ToolTip می توانستم متن چند خطی را تعیین کنم.
A.Karimi
چهارشنبه 16 شهریور 1390, 10:56 صبح
خیر اصلا اینطور نیست که این کدها باید در زیر یک دکمه نوشته شود! شما به راحتی میتوانید در همان XAML از این کدها استفاده کنید. در پست قبلی روش آنرا گفتم. مثلاً اگر کنترلی که میخواهید برای آن Tooltip بگذارید یک دکمه است کد زیر را میزنید: (دقت کنید که کد دکمه (Button) هم آمده است که میتوانید آنرا با کنترل مورد نظر خودتان جابجا کنید.)
<Button x:Name="yourButtonOrAnythingElse" Content="OK" ...>
<Button.Tooltip>
<FlowDocumentScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden">
<FlowDocument>
<Paragraph>
First Paragraph.
</Paragraph>
<Paragraph>
Second Paragraph.
<LineBreak/>
Again second paragraph but in a new line.
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</Button.Tooltip>
</Button>
باز هم اگر بر روی TextBlock و روش خودتان تاکید دارید، در مورد TextBlock و رفتن به خط بعدی با یک کارکتر خاص (مثل n\) چیزی به ذهنم نمیرسد. اما به عنوان سادهترین راه میتوانید به جای TextBlock از TextBox استفاده کرده و آنرا ReadOnly کنید و با استفاده از یک Style ظاهر آنرا شبیه چیزی که مایلید کنید. TextBox از کاراکتر n\ برای رفتن به خط بعدی پشتیبانی میکند.
water_lily_2012
چهارشنبه 16 شهریور 1390, 11:15 صبح
منظور من از زیر دکمه همین هست که شما نوشته اید. ولی من اینطوری نمی خواهم.
به کد زیر توجه کنید.
من به این صورت toolTip را فراخوانی می کنم.
<Canvas x:Name="AddMember" ToolTip="اضافه كردن">
فقط با استفاده از خاصیت ToolTip و یک متن.
و فقط یک ToolTip طراحی کرده ام. نه در زیر هر شی.
A.Karimi
چهارشنبه 16 شهریور 1390, 12:19 عصر
متاسفم! واقعاً چیزی به ذهنم نمیرسد! درک نمیکنم که String بودن چرا اینقدر مهم است! در XAML به دو روش میتوان به یک متغییر مقدار داد، یکی روش من و دیگری روش شما. حتی شما میتوانید کد Tooltip را در Resource قرار داده و آنرا به Tooltip متصل کنید.
فکر میکنم منظور شما را متوجه نمیشوم اما آخرین سعی خودم را میکنم؛
شما میتوانید در Resource صفحه یا برنامه کدهایی که من نوشته بودم (FlowDocument و یا Stack) را نوشته و خصیصه x:Key را برای آن ست کنید. مثلا:
<FlowDocumentScrollViewer x:Key="tooltipContent" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden">
<FlowDocument>
<Paragraph>
First Paragraph.
</Paragraph>
<Paragraph>
Second Paragraph.
<LineBreak/>
Again second paragraph but in a new line.
</Paragraph>
</FlowDocument>
و بعد در کد خودتان به صورت زیر مینویسید:
<Canvas x:Name="AddMember" ToolTip="{StaticResource tooltipContent}">
cardano7
چهارشنبه 16 شهریور 1390, 14:14 عصر
با یک کارکتر خاص (مثل n\)
گاهی در #C باید از r\n\ استفاده کرد و نه از n\ تنها.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.