Domanda

Ho una vista ad albero che può essere ovunque da 1 livello profondo a quasi 6. Ogni nodo può essere solo un paio di lettere o un paio di parole per un totale di un massimo di 20-30 caratteri.

Come faccio a trovare la più grande larghezza di un testo del nodo e aggiungere la sua profondità di offset per impostare la larghezza della vista ad albero in modo da non passare attraverso i miei confini?

Se ho bisogno di aggiungere ulteriori informazioni, fatemelo sapere.


Modifica:

Ecco quello che ho attualmente ottenuto. Ho bisogno di impostare la larghezza delle panelLocations al caricamento della pagina in modo da vista ad albero in grado di caricare correttamente all'interno di esso.

<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>
È stato utile?

Soluzione

Dal momento che i browser web renderanno il contenuto in modo diverso, l'unica opzione per scoprire la reale larghezza del contenuto è quello di utilizzare javascript per attraversare gli elementi DOM e misurare la larghezza.

La soluzione più pulito e più semplice è specificare un opportunamente grande larghezza per l'elemento contenitore, quindi specificare un valore di overflow:scroll per consentire al contenuto di extra-a scorrere. E 'abbastanza brutto vedere le barre di scorrimento intorno agli elementi nella pagina, ma quando si utilizza una struttura ad albero vista, brutto è qualcosa che si vive con.

Altri suggerimenti

Si può prendere vantaggio del metodo MeasureText, in Graphics namespace. In pratica ti dà indietro il formato di una stringa dovrebbe essere reso in un certo carattere e la dimensione. Data una larghezza costante per ogni livello intentation (si sa, filari, pulsanti / icone: si può misurare in modo statico), si può supporre necessario larghezza sarà il più grande di:

measuredText + (level * indentationWidth)

HTH!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top