سؤال

لدي منظر شجرة يمكن أن يتراوح من مستوى واحد إلى مستوى 6 تقريبًا.يمكن أن تتكون كل عقدة من بضعة أحرف فقط أو بضع كلمات يصل مجموعها إلى 20-30 حرفًا.

كيف يمكنني العثور على أكبر عرض لأحد نصوص العقدة وإضافة إزاحة عمقها لتعيين عرض الشجرة بحيث لا تمر عبر حدودي؟

إذا كنت بحاجة إلى إضافة المزيد من المعلومات، اسمحوا لي أن أعرف.


يحرر:

وهنا ما لدي حاليا.أحتاج إلى ضبط عرض موقع اللوحة عند تحميل الصفحة حتى يمكن تحميل العرض الشجري بشكل صحيح بداخلها.

<asp:Panel ID="panelLocations" runat="server" style="position:absolute;border:solid 1px #E0E0E0;padding:10px 5px 5px 10px;background-color:#F7F7F7;width:350px;display:none;" >
    Search: <asp:TextBox ID="textboxLocationSearch" runat="server" AutoCompleteType="disabled" ToolTip="To find a store, type the 4 digit store number (e.g. 0001)" />

    <asp:Button ID="buttonFindLocation" runat="server" Text="Find" OnClick="buttonFindLocation_Click" OnClientClick="LocationSelected();" style="width:60px;"/>

    <input type="button" value="Cancel" onclick="HideLocations();" style="width:60px;"/>

    <hr />

    <asp:TreeView ID="TreeViewLocations" runat="server" OnSelectedNodeChanged="TreeViewLocations_SelectedNodeChanged" NodeIndent="10"></asp:TreeView>
</asp:Panel>
هل كانت مفيدة؟

المحلول

وبما أن متصفحات الويب ستعرض المحتوى بشكل مختلف، فإن خيارك الوحيد هو معرفة حقيقي عرض المحتوى هو استخدام جافا سكريبت لاجتياز عناصر DOM وقياس العرض.

الحل الأنظف والأبسط هو تحديد عرض كبير مناسب لعنصر الحاوية، ثم تحديد قيمة overflow:scroll للسماح بتمرير محتوى واسع النطاق.من القبيح جدًا رؤية أشرطة التمرير حول العناصر الموجودة في الصفحة، ولكن عندما تستخدم بنية عرض الشجرة، فإن القبح هو شيء تتعايش معه.

نصائح أخرى

ويمكنك الاستفادة من طريقة MeasureText، في مساحة الاسم الرسومات. في الأساس، فهو يوفر لك نسخ حجم سلسلة من المفترض أن يتم تقديمها في الخط وحجم معين. وبالنظر إلى العرض المستمر لكل مستوى intentation (أنت تعرف، خطوط شجرة، وأزرار / الرموز: يمكنك قياسه بشكل ثابت)، يمكنك أن تفترض حاجة سوف يكون العرض أكبر من:

measuredText + (level * indentationWidth)

وHTH!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top