-fx-pref-width
устанавливает свойство TableColumnHeader
(то же самое для -fx-min-width
, см. Ниже). Установка этого свойства с помощью CSS глючит: JDK-8087822 . fx:id
, так и id
. Если вы установите только fx:id
, он также будет использоваться для id
. Если вы установите оба, id
используется для CSS, а fx:id
используется для внедрения экземпляра в контроллер. Примечание. Следующее в основном касается деталей реализации JavaFX 11.0.1 (по крайней мере, я не смог найти документацию).
Проблема заключается в разнице между TableColumnBase.minWidth
и Region.minWidth
. Первый не подходит для CSS, потому что это не StyleableProperty
. Последнее и именно это свойство определяют CSS-свойство -fx-min-width
.
Когда вы делаете:
Вы устанавливаете свойство minWidth
для TableColumn
с помощью установщика свойства . Это не аналогично установке свойства CSS.
Однако Справочное руководство по JavaFX CSS в документирует , что TableColumn
является частью подструктуры TableView
. Это может указывать на то, что вы можете стилизовать столбец с помощью CSS. Но опять же, ни один из свойств на самом деле не является стилем; метод getCssMetaData()
возвращает Collections.emptyList()
.
TableColumnBase
действительно реализует Styleable
(откуда берется getCssMetaData()
), что означает, что он имеет следующий метод: getStyleableNode()
. Реализация TableColumn
этого метода после отображения TableView
возвращает экземпляр TableColumnHeader
. Это означает, что любой CSS, примененный к TableColumn
, на самом деле применяется к TableColumnHeader
. Именно этот последний класс расширяет Region
и поэтому обладает свойством styleable minWidth
. А из некоторого тестирования свойство minWidth
экземпляра TableColumnHeader
установлено как ожидалось.
Проблема заключается в том, что minWidth
из TableColumnHeader
не влияет на TableColumn
. Реализация принимает во внимание только TableColumn.minWidth
. И это, к сожалению, означает, что вы не сможете установить minWidth
из TableColumn
из CSS.
Такое поведение может быть ошибкой.
Если Вы будете говорить о настройках .NET, то они обычно будут в .config (xml) файлом в том же каталоге как приложение. При сохранении их, однако, локальная копия сохраняется в пользователю перезаписываемая папка (обычно C:\Users\username\AppData\Local в соответствии с Vista). Под XP посмотрите в папке Documents and Settings.
Приложение .NET использует этот файл в предпочтении к 'по умолчанию' в каталоге приложения.
Надеюсь, это поможет.
Целое местоположение файла конфигурации может быть немного скользким. В зависимости от того, является ли это "пользователем", устанавливающим или установка "приложения", это войдет в другой файл. Некоторые настройки могут даже прибыть из Вашей конфигурации "машины" (Как в случае ASP.NET). Вместо того, чтобы предположить, где все, я нахожу намного более полезным спросить.NET, где это ищет эти файлы. Примерно:
//Machine Configuration Path
string path1 = ConfigurationManager.OpenMachineConfiguration().FilePath;
//Application Configuration Path
string path2 = ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None).FilePath;
//User Configuration Path
string path3 = ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
Это - то, что добавляется к Вашему проекту. Процесс сборки назовет это [myproject] .exe.config. Это содержит параметры настройки приложения (главным образом) только для чтения и значения по умолчанию прикладного уровня для определенных для пользователя настроек. Настройки прикладного уровня являются трудными программно изменить свои значения. Свойства установки прикладного уровня будут только иметь, определяются. Намерение: если Ваша установка для всех пользователей приложения, то ручное редактирование (или установщик) должно установить их. Если это изменяется на пользователя, то сделайте это установкой в расчете на пользователя.
Ваше приложение выполнит без [myproject] .exe.config файл. Чтобы сделать это, двоичный файл имеет свою собственную версию "хранившего" файла. Это полезно до некоторой степени, но может сбивать с толку. Если у Вас есть .config файл в неправильном месте или с неправильным именем.NET возвращается к "двоичным значениям по умолчанию". Это может вызвать появление неспособности влиять на настройки путем изменения файла конфигурации. Используйте метод выше для знания, куда .config ДЕЙСТВИТЕЛЬНО идет, или столкнитесь с гневом двоичных настроек по умолчанию.
Это сгенерировано в первый раз, когда Вы "сохраняете" свое Значение по умолчанию. Настройки возражают с установкой "в расчете на пользователя". Этот файл сохранен в пути профиля пользователя в основанном на местоположении на названии Вашего проекта, версии, операционной системе и некотором другом темном волшебстве.NET. Свойства для этих настроек читаемы/записываемые. Они разработаны, чтобы быть легко установленными и затем сохраненными с единственным вызовом.
Таким образом, где мои настройки идут? Ответ - то, что потенциально много файлов объединены для получения "Активного набора" настроек. App.config и user.config настройки являются базисными блоками, но существуют machine.config настройки, и затем существуют настройки блока зависимости, которые могут далее усложнить вещи..., но это - другая тема полностью.
Истинная правда файлов конфигурации распространена через большое количество ужасных случаев и деталей. Однако с небольшим знанием о том, как они объединены, это - довольно полезная система. Особенно, если Вы понимаете, что можно связать с данными к этим настройкам ;)
На Windows XP это хранится в файле, названном user.config в подпапке:
C:\Documents and Settings\username\Local Settings\Application Data
http://dotnetproject.blogspot.com/2006/08/where-is-userconfig-file-located-in.html
Вы обращаетесь к .settings файлу в своем приложении? Когда Вы добавленные стоимости в тот файл, app.config файл создается для Вас. Необходимо видеть его в проводнике решения.